Error using JSTL XML taglib - attribute xml does not accept any expressions

前端 未结 6 1543
遇见更好的自我
遇见更好的自我 2021-01-24 12:12

I\'m getting the following error when I try to use the JSTL XML taglib:

/server-side-transform.jsp(51,0) 
According to TLD or attribute directive in tag file,
at         


        
相关标签:
6条回答
  • 2021-01-24 12:47

    Not exactly, you should use

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

    to use JSTL 1.1.

    Unfortunately the standard.jar files includes many versions of *.tld tag for eg.

    • c-1_0-rt.tld
    • c-1_0.tld
    • c.tld
    • fmt-1_0-rt.tld
    • fmt-1_0.tld
    • fmt.tld
    • fn.tld
    • permittedTaglibs.tld
    • scriptfree.tld
    • sql-1_0-rt.tld
    • sql-1_0.tld
    • sql.tld
    • x-1_0-rt.tld
    • x-1_0.tld
    • x.tld

    so by using

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

    you tell the jsp to specifically use JSTL 1.1 which btw fixes the above issue, if this does not work try using

    <%@ page isELIgnored="false" %>

    which basically tells jsp to evaluate EL.

    /srm

    0 讨论(0)
  • 2021-01-24 12:48

    Your code is picking up an "incorrect" version of x-1_0.tld, probably due to classpath issues. I see for instance on my current classpath, I have one version of x-1_0.tld that ALLOWS runtime-expressions ${syntax} in this tag and one that does not. The one in standard.jar does not allow EL expressions, while the one I have in jetty does.

    0 讨论(0)
  • 2021-01-24 12:48

    Use the following code:

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

    Instead of:

    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    
    0 讨论(0)
  • 2021-01-24 12:50

    I found that the Sun documentation refers to the URI as

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

    The tag is now being called correctly, so this was the cause of the problem; however I am getting a NullPointerException in doEndTag()... ho hum

    0 讨论(0)
  • 2021-01-24 12:51

    change <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> is not right for me. for my project(web-app version="3.0" ) IDE(MyEclipse) I see the configuration file of x.tld.There is the false of select which do not allow the select apperance ${} or <%=%>.So I got a way to cheat in the web.xml.

    1. <jsp-config> <taglib> <taglib-uri>/huang</taglib-uri> <taglib-location>/WEB-INF/x.tld</taglib-location> </taglib> </jsp-config> add to web.xml

    2. declare the new taglib-url name "huang" to my jsp file like this:

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

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

      I can get the right result

    0 讨论(0)
  • 2021-01-24 13:04

    I realize this question was asked quite a while ago but I just ran into the same problem. In my case, the example I was following directed me to use:

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

    When I should have been using:

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

    I was staring at the solution for a while before the extra jsp in the uri popped out at me.

    0 讨论(0)
提交回复
热议问题