2012-08-26 28 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> 
    

我希望它能够帮助