2013-10-11 32 views
0

我在這裏有一些代碼。java.lang.ClassNotFoundException:org.apache.xpath.VariableStack使用jstl xml

<c:set var="songId" value="${param.songid}"/> 
<c:import var="xml" url="WEB-INF/comment.xml" /> 
<x:parse var="doc" doc="${xml}" scope="session" /> 
<c:catch var="ex"> 
<x:forEach var="cmt" select="$doc//*[songId=$songId]" varStatus="counter"> 
    <li> 
     <div class="avacmtSide"> 
     </div> 
     <div class="ctcmtSide"> 
      <a href="#" style="padding:10px;"><x:out select="$cmt/uploader"/> </a> 
      <div style="padding:10px;"><x:out select="$cmt/comment"/> </div> 
     </div> 
     <div class="clear"></div> 
    </li> 
</x:forEach> 

當我運行它有一個錯誤拋出java.lang.ClassNotFoundException:org.apache.xpath.VariableStack。 當我搜索谷歌這個錯誤。人們說有缺失的xalan圖書館。但是我在我的項目中添加了xalan-2.7.0.jar,它不起作用。任何知道它的人請幫助我。謝謝。

+0

您正在通過命令行或某些IDE運行蝕? –

+0

我在NetBeans IDE中運行 – user2608948

+0

是否將xalan庫添加到項目構建路徑中? –

回答

0

可變語法不正確:

[songId=$songId] 

它應該是這樣的:

"$doc//*[@songId=${pageScope:songId}]" 

使用JSTL數據作爲XPath的變量

作用域變量可以在XPath表達式中使用( $ implicitObject:variableName)類似於它們在EL($ {implicitObject.variableName})中的使用方式。如果省略隱式對象,則將按照標準順序搜索範圍。請注意,「。」和「[]」符號不能用於訪問bean屬性。

參考