x:在两台不同的机器上设置不一样吗?

时间:2013-08-23 14:07:18

标签: java xslt jstl

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

由于某种原因,string xslt函数没有像我期望的那样从XML属性中选择文本。

据我所知,Jetty版本,java版本和操作系统版本在两台机器上是相同的(并且XML文件是相同的),但是string()函数不能在其中一个上运行机器。有没有人有类似的问题,或者有关如何调查差异发生原因的建议?

1 个答案:

答案 0 :(得分:0)

如果其他人在将来遇到这个问题,我会抛弃我的解决方法。

无论我做了什么,我都无法弄清楚为什么有些机器只是拒绝识别/实现string()xpath函数,所以我通过将代码更改为以下内容解决了这个问题:

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

这在所有机器上都能保持一致。