1, org.apache.jasper.JasperException According to TLD or attribute directive in tag file, attribute items does not accept any expressions
这个问题,貌似和JSP ,JSTL的版本存在一些问题。其具体内容是说,items属性无法接受表达式。
但是在c.tld文件中找到对应的映射。
代码如下:
<name>items</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
<rtexpvalue 设置的值为true,明显是可以使用表达式的,不知道为何会出现这个错误。解决方案:
在core后面加_rt即可解决。网上有关于此点的详细介绍,但是我看不太明白。
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
2, quote symbol expected
缺少引号,一般在使用EL表达式的时候,可能会出现这个错误。
解决方案:加上引号。
3, url: http://www.dzrtag.com cannot be resolved in either web.xml or the jar files deployed with this app
在自定义标签的时候,出现了这个问题。
其大致意思为:无论在web.xml或者是部署在这个应用中的jar包中都无法找到 url:http://www.dzrtag.com 这个路径。
造成问题的原因,是页面无法找到你的http://www.dzrtag.com路径,可能是因为你的.tld文件藏得太深。
解决的一种方案,就是在web.xml配置下 URL 到 TAG的映射。
<jsp-config>
<taglib>
<taglib-uri>http://www.dzrtag.com</taglib-uri>
<taglib-location>/WEB-INF/lib/mytag.tld</taglib-location>
</taglib>
</jsp-config>
这样,重启服务器之后,JSP页面就能够找到你这个路径,你自己编写的tag就能够正常使用。奇怪的是,通常情况,都不需要进行这个配置的,我在想,是否将tag.tld文件放到比较外层,系统就能够自动寻找到该路径呢?