2013-08-23 36 views
1

我使用JSTL解析XML文件,以便我可以在網頁上顯示項目。我使用JSTL的xml標籤來幫助解決這個問題,但是發現機器之間存在奇怪的不一致。x:設置不在2臺不同的機器上工作?

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

在我的機器,我得到以下(這是我所期望的):

  • 測試1:燙髮= 「ROLE_USER」]
  • 測試2:ROLE_USER

在另一個開發服務器上,我得到了不同的答案:

  • TEST1:[燙髮= 「ROLE_USER」]
  • TEST2:

出於某種原因,如我期望string XSLT功能不被選擇從XML屬性的文本。

據我所知,兩臺機器上的Jetty版本,Java版本和操作系統版本相同(並且XML文件完全相同),但string()函數在其中一臺機器上不起作用。有沒有人有類似的問題,或有關如何調查差異發生的原因的建議?

+0

哎呀!感謝@BheshGurung指出 - 我編輯了我的問題。 –

回答

0

我會拋出我的解決方法,因爲任何人在將來都會遇到這個問題。

無論我做什麼,我無法弄清楚,爲什麼有的機器只是拒絕承認/執行字符串()XPath函數,所以我工作圍繞這一問題,通過改變我的代碼如下:

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

這一直在所有機器上工作。

+0

我有同樣的問題,感謝評論它似乎是一個bug在jstl 2! –

相關問題