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>

この部分 -> pathpdf={./.} は、次のような URL を受け取ります。

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

パラメータは期待どおりに送信されますが、サーバー側でそのパラメータの System.out を実行しようとすると、次の値が表示されます。

->->->パス: SERVER02workarea51docsws 00120130000261_101912.pdf

エスケープはサーブレットによって行われたのですか、それとも私のアプリケーションでそれを行っているのですか?

ありがとうございました

編集

以下のアンサーウェアとは異なる方法でこれを作成しましたが、似ています: 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 に答える