首先发现的问题是${aaa},像这样的标签无法解析,当在页面上添加这样的标签声明的时候
<%@ taglib prefix="c" uri= "http://java.sun.com/jstl/core "%>
貌似所有的<c:out诸如此类的都可以使用了,但并不是真的我们引入的jstl包和standar包都起作用了,因为像这样的${aaa}标签还是无法解析的,说明引用还有问题。
在web文件中我们注册了这些tag,诸如
1 <taglib>
2 <taglib-uri>/tags/c</taglib-uri>
3 <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
4 </taglib>
所有的tld文件都放在web-inf下面,在页面上引用这些标签的时候如
<%@ taglib uri="/tags/c" prefix="c" %>
会发现c标签全部都无法解析,而换成
<%@ taglib prefix="c" uri= "http://java.sun.com/jstl/core "%>
的时候还可以,说明这些标签文件还是没有引用成功,什么原因呢,这个问题折腾了我一天,因为web工程的web.xml文件头声明的servlet版本有问题,在eclipse中默认的web.xml是没有版本定义的文件头的,默认的版本应该是servlet2.3,当我们添加如下声明的时候
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
同时,需要修改一下web.xml文件中对应的出现红线的地方,在tag声明部分也需要加上<jsp-config>标签,如下所示:
<jsp-config>
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>
</jsp-config>
ok,运行,正常!
另,我用的jstl和standar都是1.1.2版本的