Resin/Tomcat下使用jstl

本文介绍如何在Resin服务器的不同版本中使用JSTL,包括Resin2.x和Resin3.x的具体配置方法,并对比了标准JSTL1.0与1.1的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Resin下使用jstl

在Resin2.x下使用jstl
Resin从2.1.2版本开始自己实现了JSTL的core和fmt两个TAGLIB。
使用Resin2.x自带的JSTL不需要拷贝JAR和TLD文件,也不需要配置web.xml。
只要在页面引用就可以了,注意与标准JSTL1.1的区别。

Java代码 复制代码
  1. <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>   
  2. <%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>  
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>


需要注意的是:
<c:out value="${myvar}"/> 是 JSTL 语法 , resin2.1.x版本支持,
而 ${myvar} 是 JSP 2.0 语法 resin 3.0 之后支持
在resin2.1.x中使用会产生java.lang.NoClassDefFoundError: javax/servlet/jsp/el/VariableResolver错误
在Resin3.x下使用jstl(未经验证)
将resin.conf文件的:

Xml代码 复制代码
  1. <servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet"/>  


改成:

Xml代码 复制代码
  1. <servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet">  
  2.     <init enable="false"/>  
  3. </servlet>  


在resin.conf文件中添加你的webapp的配置,注意要加上

Xml代码 复制代码
  1. <jsp fast-jstl="false"/>  
  2. <web-app id="/jstltest" document-directory="jstltest"><jsp fast-jstl="false"/></web-app>  


在jsp引用中

Java代码 复制代码
  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


使用标准的JSTL1.1
需要将JAR包(jstl.jar和standard.jar)拷贝到WEB-INF/lib目录下,不需要拷贝TLD文件,不需要配置web.xml。
在页面这样引用

Java代码 复制代码
  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>


使用标准的JSTL1.0
需要将JAR包(jstl.jar和standard.jar)拷贝到WEB-INF/lib目录下,拷贝需要的TLD文件。
配置web.xml

Xml代码 复制代码
  1. <taglib>  
  2. <taglib-uri>/tags/jstl-c</taglib-uri>  
  3. <taglib-location>/WEB-INF/tld/c.tld</taglib-location>  
  4. </taglib>  
  5. <taglib>  
  6. <taglib-uri>/tags/jstl-fmt</taglib-uri>  
  7. <taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>  
  8. </taglib>  


在jsp引用

Java代码 复制代码
  1. <%@ taglib uri="/tags/jstl-c" prefix="c" %>   
  2. <%@ taglib uri="/tags/jstl-fmt" prefix="fmt" %>  
<%@ taglib uri="/tags/jstl-c" prefix="c" %>
<%@ taglib uri="/tags/jstl-fmt" prefix="fmt" %>



Tomcat下使用JSTL1.0
需要将JAR包(jstl.jar和standard.jar)拷贝到WEB-INF/lib目录下,拷贝需要的TLD文件。
配置web.xml

Xml代码 复制代码
  1. <taglib>  
  2. <taglib-uri>/tags/jstl-c</taglib-uri>  
  3. <taglib-location>/WEB-INF/tld/c.tld</taglib-location>  
  4. </taglib>  
  5. <taglib>  
  6. <taglib-uri>/tags/jstl-fmt</taglib-uri>  
  7. <taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>  
  8. </taglib>  


在jsp引用

Java代码 复制代码
  1. <%@ taglib uri="/tags/jstl-c" prefix="c" %>   
  2. <%@ taglib uri="/tags/jstl-fmt" prefix="fmt" %>  
<%@ taglib uri="/tags/jstl-c" prefix="c" %>
<%@ taglib uri="/tags/jstl-fmt" prefix="fmt" %>



Tomcat下使用JSTL1.1
需要将JAR包(jstl.jar和standard.jar)拷贝到WEB-INF/lib目录下,不需要拷贝TLD文件,不需要配置web.xml。
在页面这样引用

Java代码 复制代码
  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>



需要注意的是:
JSTL1.0是需要Servlet2.3和JSP1.2的。
JSTL1.1是需要Servlet2.4和JSP2.0的。


${myvar} 是JSP 2.0 语法,tomcat5以后的版本都支持JSP2.0也就是都支持EL语言。
但是为什么我们的应用程序发布到tomcat5服务器上后还是不支持EL语言呢,而且甚至不能发布成功。
这里涉及到web.xml文件的迁移问题
使用

Xml代码 复制代码
  1. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">  


是JSP1.2的语法,不支持EL语言。
需要把文件头换成

Xml代码 复制代码
  1. <web-app xmlns="http://java.sun.com/xml/ns/j2ee"  
  2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"  
  4.     version="2.4">  


或者在每个jsp页面添加

Java代码 复制代码
  1. <%@ page isELIgnored="false" %>  
<%@ page isELIgnored="false" %>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值