我得到的以下错误时,我尝试使用JSTL XML标签库:

/server-side-transform.jsp(51,0) 
According to TLD or attribute directive in tag file,
attribute xml does not accept any expressions

我找到顶级域等,但是如果有人知道什么这是一个可以救我一些时间,它会赞赏!

如果有帮助,我得到这个错误的运行实例码

<c:set var="xml">
  <paragraph>
    This document uses <bold>unusual</bold> markup,
    which we want to replace with <bold>HTML</bold>.
  </paragraph>
</c:set>

<c:set var="xsl">
  <?xml version="1.0"?>
  <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:template match="paragraph">
      <p><xsl:apply-templates/></p>
    </xsl:template>

    <xsl:template match="bold">
      <b><xsl:value-of select="."/></b>
    </xsl:template>
  </xsl:stylesheet>

</c:set>

<x:transform xml="${xml}" xslt="${xsl}"/>

在我的/服务器的端-变换。jsp-我的标签库的指令是:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>

和我有standard.jar 和jstl.jar 在/WEB-INF/lib.

有帮助吗?

解决方案

您的代码拿起X-1_0.tld的“不正确”版本,可能是由于类路径的问题。我看到例如在我的当前classpath,我有X-1_0.tld的一个版本,它允许运行时表达式$ {}语法在这个标签和一个不。在standard.jar所述一个不允许EL表达式,而一个我在码头一样。

其他提示

我发现,Sun文档指URI作为

http://java.sun.com/jsp/jstl/xml

在标签现在被正确调用,所以这是问题的原因;但是我得到一个NullPointerException在doEndTag()... HO哼声

不完全是,你应该使用

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

使用JSTL1.1.

不幸的是的standard.jar 文件中包括的许多版本*.顶级域名的标签。

  • c-1_0-rt。顶级域名
  • c-1_0.顶级域名
  • c.顶级域名
  • fmt-1_0-rt。顶级域名
  • fmt-1_0.顶级域名
  • fmt。顶级域名
  • fn。顶级域名
  • permittedTaglibs.顶级域名
  • 无脚本.顶级域名
  • sql-1_0-rt。顶级域名
  • sql-1_0.顶级域名
  • sql。顶级域名
  • x-1_0-rt。顶级域名
  • x-1_0.顶级域名
  • x.顶级域名

因此,通过使用

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

你告诉jsp具体使用JSTL1.1其顺便说一句修复上述问题,如果这不起作用,尝试使用

<%@ page isELIgnored="false" %>

这基本上告诉jsp评估EL。

/srm

使用以下代码:

<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %> 

代替:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

我意识到这个问题,有人问相当长一段时间前,但我只是碰到了同样的问题。在我的情况下,示例性我下面的有向我使用:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

当我应该已经使用:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

余物在用于同时将溶液盯着之前额外的 JSP 在URI我弹出。

改变 <%@标签库prefix="c"uri="http://java.sun.com/jstl/core"%>是不适合我。我的项目(网络应用程序version="3.0")IDE(MyEclipse) 我看到的配置文件x。顶级域名。那是假的选择不允许选择的外观${}或 <%=%>.所以我得到了一种方法来作弊的web.xml.

  1. <jsp-config> <taglib> <taglib-uri>/huang</taglib-uri> <taglib-location>/WEB-INF/x.tld</taglib-location> </taglib> </jsp-config> 增加来web.xml

  2. 宣布新的标签库-url名称为"黄"我jsp文件是这样的:

    <%@ taglib prefix="x" uri="/huang" %>

  3. 使用<x:out select="$casexml//案例//${node.name }" />

    我可以得到正确结果

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top