1

Web ページに項目を表示できるように、JSTL を使用して XML ファイルを解析しています。これを支援するために JSTL の xml タグを使用していますが、マシン間で奇妙な矛盾が見つかりました。

<x:set var="test1" select="$extraSideNavLinks/sideNavLinks/@perm"/>
<x:set var="test2" select="string($extraSideNavLinks/sideNavLinks/@perm)"/>
TEST1: ${test1}
TEST2: ${test2}

私の開発マシンでは、次のようになります (これは私が期待するものです)。

  • TEST1: [perm="ROLE_USER"]
  • テスト 2: ROLE_USER

別の開発サーバーでは、別の答えが得られます。

  • TEST1: [perm="ROLE_USER"]
  • テスト2:

何らかの理由で、stringxslt 関数が期待どおりに XML 属性からテキストを選択していません。

私が知る限り、Jetty のバージョン、Java のバージョン、および OS のバージョンは両方のマシンで同じですが (XML ファイルは同じです)、そのstring()機能はいずれかのマシンでは機能していません。誰かが同様の問題を抱えていましたか、または違いが発生している理由を調査する方法についての提案はありますか?

4

1 に答える 1

0

他の誰かが将来この問題を抱えた場合に備えて、回避策をスローします。

私が何をしたとしても、一部のマシンが string() xpath 関数の認識/実装を拒否する理由を理解できなかったので、コードを次のように変更して問題を回避しました。

    <c:set var="test2">
        <x:out select="$extraSideNavLinks/sideNavLinks/@perm"/>
    </c:set>

これは、すべてのマシンで一貫して機能しました。

于 2013-08-27T15:38:13.500 に答える