1

嗨,我试图获取一个请求参数,它是文件的 URL 路径:

我正在使用 XSL 文件中的模板来“粘贴”带有 onclick 事件的 div:

<div onclick="openPDF(700,500,'getDoc?pathpdf={./.}&amp;type=pdf&amp;nocache='+Math.random(),'scrollbars=yes,toolbar=no,status=yes,resizable=yes,menubar=no,location=no');" align="center">
 <img src='Images/pdfIconsmall.png' width='12' style='height:12' />
</div>

THIS PART -> pathpdf={./.} 将收到这样的 url:

pathpdf=\\SERVER02\work\area51\docs\ws\00120130000261_101912.pdf

发送的参数是预期的,但是在服务器端,当我尝试对该参数执行 System.out 时,我会看到这个值:

->->->路径:SERVER02workarea51docsws 00120130000261_101912.pdf

是由 servlet 进行的转义,还是在我的应用程序中这样做?

谢谢

编辑

我以与下面的答案不同但相似的方式制作了这个:string-replace-all

  <xsl:when test="string-length(./.) &gt;0">
    <xsl:variable name="pathpdf">
      <xsl:call-template name="string-replace-all">
      <xsl:with-param name="text" select="./." />
      <xsl:with-param name="replace" select="'\'" />
      <xsl:with-param name="by" select="'\\'" />
          </xsl:call-template>
     </xsl:variable>
<div onclick="openPDF(700,500,'getDoc?pathpdf={$pathpdf}&amp;type=pdf&amp;nocache='+Math.random(),'scrollbars=yes,toolbar=no,status=yes,resizable=yes,menubar=no,location=no');" align="center">
 <img src='Images/pdfIconsmall.png' width='12' style='height:12' />
</div>
</xsl:when>
4

1 回答 1

4

在将请求发送到服务器之前,您必须对 URL 参数值进行编码。

这个

pathpdf=\SERVER02\work\area51\docs\ws\00120130000261_101912.pdf

需要变成这样:

pathpdf=%5CSERVER02%5Cwork%5Carea51%5Cdocs%5Cws%5C00120130000261_101912.pdf

如果您从 Java 应用程序提交请求,请使用以下代码对所有参数进行编码

URLEncoder.encode(parameterValue);


使用 XSLT,尝试:

url:encode('your_url_goes_here');
于 2013-06-25T16:34:06.397 回答