2012-08-26 30 views
1

我有一個用於添加數據的頁面。驗證器使用xalan在xsl中獲取ArrayList

<xsl:param name="validator"/> 

<xsl:variable name="errorList" select="validator:getErrorList()" /> 
     <xsl:for-each select="$errorList"> 
      <li> 
       <xsl:value-of select="." /> 
      </li> 
     </xsl:for-each> 

驗證失敗時。我返回到同一頁面並希望得到錯誤列表。現在我收到錯誤消息,說明ArrayList無法轉換爲NodeList。

+1

可以修改'驗證.getErrorList()'方法返回一個'NodeList'或結果樹片段? –

回答

0

我遇到了同樣的問題,我通過在java方法中返回org.apache.xpath.NodeSet而不是ArrayList<String>來解決它。在XSLT和Java代碼低於

  • Java方法

    public NodeSet getNodeSet(){  
    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 
    Document doc = docBuilder.newDocument(); 
    
    NodeSet nodeset = new NodeSet(); 
    nodeset.addElement(doc.createTextNode("noteOne")); 
    nodeset.addElement(doc.createTextNode("nodetTwo")); 
    System.out.println("NodeSet length: " + nodeset.getLength()); 
        return nodeset; 
    } 
    
  • XSLT代碼

    <xsl:for-each select="myclass:getNodeSet()"> 
         <li> 
          <xsl:value-of select="." /> 
         </li> 
        </xsl:for-each> 
    

我希望它能夠幫助