前几天,一个系统从resin 2升级到resin3得时候遇到的问题,如下:
javax.servlet.jsp.JspException: An error occurred while evaluating custom
action attribute "value" with value "${title.ID}": Unable to find a value
for "ID" in object of class "java.lang.String" using operator "." (null)
at org.apache.taglibs.standard.lang.jstl.Evaluator.evaluate(Evaluator.java:109)
at org.apache.taglibs.standard.lang.jstl.Evaluator.evaluate(Evaluator.java:129)
at org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:75)
at org.apache.taglibs.standard.tag.el.core.ExpressionUtil.evalNotNull(ExpressionUtil.java:48)
at org.apache.taglibs.standard.tag.el.core.ParamTag.evaluateExpressions(ParamTag.java:108)
........(下略)
找了半天才发现是resin3与jstl之间的问题
需要将resin自带的禁用。如下
将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="/alumni" document-directory="webapps/alumni">
<jsp fast-jstl="false"/>
</web-app>
在jsp引用中 把
<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core' %>
改成
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>
问题即解决
在将系统从Resin 2迁移到Resin 3的过程中,遭遇了配置上的挑战。主要问题集中在JSTL 1.1的适配和使用上,涉及到servlet、jsp以及web应用程序的集成。解决这些问题对于确保应用的正常运行至关重要。

1236

被折叠的 条评论
为什么被折叠?



