很久没有写自己的blog了,因为这一段时间比较忙,抱歉了!
    上个星期遇到了一个问题,我本来想在自己的web系统中使用jsp的标准标签,我在自己的jsp文件中添加了<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>,然后我再使用c标签的时候,我的页面却总是报这样的错误
According to TLD or attribute directive in tag file, attribute items does not accept any expressions
大体上是说根据我的tag文件,items属性中不能接受任何的表达式语言,以前从来没有遇到过这样的事情,用到jsp标准标签的时候几乎都是拷贝过来配置一下就可以使用了。现在只要使用迭代标签就会报错!
    
     我上网搜索了一下发现很多人都遇到了同样的问题,大体的原因是因为版本不兼容的问题。但是试验了几次都没有成功。
     具体的解决方法:
     1:从apache的网站上down下了新的standard.jar、jstl.jar和c.tld。我发现新的文件的确比我原来的文件要大,而且c.tld文件的内容已经不一样了。更新了jar文件和tld文件。
     2:我的web.xml文件的配置是
           
< web-app xmlns ="[url]http://java.sun.com/xml/ns/j2ee[/url]"
xmlns:xsi ="[url]http://www.w3.org/2001/XMLSchema-instance[/url]" xsi:schemaLocation ="[url]http://java.sun.com/xml/ns/j2ee[/url] [url]http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd[/url]"
version ="2.4" >
 
           web.xml文件中也不需要配置tag标签,也就是c.tld文件的位置,只需要拷贝到WEB-INF目录下面即可,这应该得益于jsp2.0的规范了,它可以自动寻找到。
    3:把<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
          改为<%@ taglib uri=" [url]http://java.sun.com/jstl/core_rt[/url]" prefix="c" %>
 
    重新启动web程序,测试通过了。果然就是版本不兼容的问题了。呵呵!