zoukankan      html  css  js  c++  java
  • JSTL的问题(According to TLD or attribute directive in tag file, attribute value does not accept any expressions)

    环境: win2003 tomcat 5.5 JDK1.6上

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4"
             xmlns
    ="http://java.sun.com/xml/ns/j2ee"
             xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

    </web-app>

    jsp代码:

    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
       
    1+2+3 = ${1+2+3} 
    <br>    
    1+2+3 = 
    <c:out value="6" />  <br> 

    此时执行没有任何问题。

     1+2+3 = <c:out value="${1+2+3}" />执行时就会出现:
    According to TLD or attribute directive in tag file, attribute value does not accept any expressions

    昨天少了一个jsp,所以一直出现问题。

    代码

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

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

    今天再试。发现JSTL1.1可以用。但是用JSTL1.0时,出现问题。
    就是把JSTL1.1的库放到/WEB-INF/lib/ 下。
    刚开始我是netbeans 5.5.1中的JSTL库拷贝出来发现可以用。后来用jstl1.1.2的库,也是可以用。

    总结:
    JSTL1.1的库 在JSP2.0(Servlet 2.4)及以后(推荐用JSTL1.1及以上)用:

    代码

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


    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4"
             xmlns
    ="http://java.sun.com/xml/ns/j2ee"
             xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

    </web-app>

     

    在 Servlet2.3及以前,

    代码

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


    比2.4以后版本少了jsp
    web.xml
    <?xml version="1.0" encoding="UTF-8"?>   
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">   
    <web-app>   
           
    </web-app>   

      在Servlet2.3中最好用JSTL1.0,如果用JSTL1.1,请加上

      在Servlet2.3中最好用JSTL1.0,如果用JSTL1.1,请加上

      <?xml version="1.0" encoding="UTF-8"?>   
      <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">   
      <web-app>        
          
      <taglib>   
              
      <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>   
              
      <taglib-location>/WEB-INF/c.tld</taglib-location>   
          
      </taglib>   
      </web-app>  


      把tld目录下的c.tld拷贝到/WEB-INF?下。

       找到官方下载地址:
      http://jakarta.apache.org/site/downloads/downloads_taglibs.html
      选择 Standard 1.0 Taglib 和Standard 1.1 Taglib 可以下载jstl1.0和jstl1.1版本。

    1. 相关阅读:
      腾讯精选50题算法【二叉搜索树的最近公共祖先】
      潜水一周,我精心整理了两个超级有用的职场生存之道
      全球用尽IPv4的一点思考
      Leetcode算法【114. 二叉树展开为链表】
      【翻译】全新16英寸MacBook Pro评测:开发人员的梦想成真
      Medium高赞系列,如何正确的在Stack Overflow提问
      Typora+PicGo+GitHub实现md自带图床效果
      SpringBoot输出日志到文件
      Mybatis用SQL做自连表查询
      IDEA实用插件推荐及使用方法详解
    2. 原文地址:https://www.cnblogs.com/fjchenq/p/901657.html
    Copyright © 2011-2022 走看看