我有一个用于添加数据的页面。和验证器

<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。

最佳答案

我遇到了同样的问题,我通过在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>



希望对您有所帮助

10-06 02:00