`
JoeDanny
  • 浏览: 64110 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Resin/Tomcat下使用jstl

阅读更多
Resin下使用jstl

在Resin2.x下使用jstl
Resin从2.1.2版本开始自己实现了JSTL的core和fmt两个TAGLIB。
使用Resin2.x自带的JSTL不需要拷贝JAR和TLD文件,也不需要配置web.xml。
只要在页面引用就可以了,注意与标准JSTL1.1的区别。
<%@ 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文件的:
<servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet"/>

改成:
<servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet">
    <init enable="false"/>
</servlet>

在resin.conf文件中添加你的webapp的配置,注意要加上
<jsp fast-jstl="false"/>
<web-app id="/jstltest" document-directory="jstltest"><jsp fast-jstl="false"/></web-app>

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

使用标准的JSTL1.1
需要将JAR包(jstl.jar和standard.jar)拷贝到WEB-INF/lib目录下,不需要拷贝TLD文件,不需要配置web.xml。
在页面这样引用
<%@ 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
<taglib>
<taglib-uri>/tags/jstl-c</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/jstl-fmt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
</taglib>

在jsp引用
<%@ 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
<taglib>
<taglib-uri>/tags/jstl-c</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/jstl-fmt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
</taglib>

在jsp引用
<%@ 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。
在页面这样引用
<%@ 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文件的迁移问题
使用
<!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语言。
需要把文件头换成
<web-app 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"
    version="2.4">

或者在每个jsp页面添加
<%@ page isELIgnored="false" %>


转自: http://xying.spaces.live.com/Blog/cns!C20F968B904CD5D6!130.entry
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics