1

我正在使用 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"]
  • TEST2:ROLE_USER

在另一台开发服务器上,我得到了不同的答案:

  • TEST1:[perm="ROLE_USER"]
  • 测试2:

出于某种原因,stringxslt 函数没有像我预期的那样从 XML 属性中选择文本。

据我所知,两台机器上的 Jetty 版本、java 版本和操作系统版本相同(并且 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 回答