Nir*_*mal 15 java jsp tomcat el
我正在使用spring-web-mvc开发我的应用程序...
现在在我的控制器上,它返回如下:
public class InterfacesManageController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
Map<String, Object> myModel = new HashMap<String, Object>();
myModel.put("interfacesList", this.interfacesSecurityProcessor.findByAll(0, null, null, null));
return new ModelAndView("common", "model", myModel);
}
Run Code Online (Sandbox Code Playgroud)
现在,我的JSP包含以下代码:
<c:forEach items="${model.interfacesList}" var="prod">
<c:out value="${prod.id}"/> <c:out value="${prod.name}"/><br><br>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
现在,当我执行此操作到Windows平台,我有tomcat 6.0.20,ognl 2.6.11它给了我我想要的确切输出:
117 eth1
118 eth1
119 eth0
Run Code Online (Sandbox Code Playgroud)
但是,当我在unix(cent os)平台上部署war文件时,我有tomcat 5.5,ognl表达式没有被执行并给我输出如下:
${prod.id} ${prod.name}
Run Code Online (Sandbox Code Playgroud)
任何人都可以有解决方案,ognl表达版本和tomcat版本应该是什么问题?
提前致谢...
Bal*_*usC 35
但是,当我在Unix(CentOS)平台上部署war文件时,我有Tomcat 5.5,EL表达式没有执行,并给我输出如下:
Run Code Online (Sandbox Code Playgroud)${prod.id} ${prod.name}
换句话说,EL表达式根本没有得到评估并显示为纯文本?这可能有以下一个或多个原因:
web.xml
未声明为的Servlet 2.4或更高版本.<%@page %>
JSP的配置有isELIgnored=true
.web.xml
被配置为与<el-ignored>true</el-ignored>
在<jsp-config>
.Tomcat 5.5是Servlet 2.4/JSP 2.0,因此#1可能被划伤.在我假设部署之前你没有在webapp中做任何改变,所以#3和#4可能会被划伤.现在离开#2.也许您将它声明为Tomcat 6.0的Servlet 2.5,而Tomcat 5.5只能与Servlet 2.4理解.这样一切都会变得一团糟,因为Tomcat会回退到最不兼容的方式.您需要重新声明web.xml
为Servlet 2.4,以便它可以在Tomcat 5.5和6.0中运行.声明应如下:
<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">
<!-- Here you go. -->
</web-app>
Run Code Online (Sandbox Code Playgroud)