我正在使用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); }
现在,我的JSP包含以下代码:
<c:forEach items="${model.interfacesList}" var="prod"> <c:out value="${prod.id}"/> <c:out value="${prod.name}"/><br><br> </c:forEach>
现在,当我在具有tomcat 6.0.20,ognl 2.6.11的Windows平台上执行此操作时,它会为我提供我想要的确切输出:
117 eth1 118 eth1 119 eth0
但是,当我在装有tomcat 5.5的unix(cent os)平台上部署war文件时,ognl表达式不会执行,并给我输出:
${prod.id} ${prod.name}
有人可以解决吗,ognl表达式版本和tomcat版本应该是什么问题?
提前致谢…
但是,当我在装有Tomcat 5.5的Unix(CentOS)平台上部署war文件时,EL表达式无法执行,并给出如下输出: ${prod.id} ${prod.name}
但是,当我在装有Tomcat 5.5的Unix(CentOS)平台上部署war文件时,EL表达式无法执行,并给出如下输出:
换句话说,EL表达式根本没有得到评估,而是显示为纯文本?可能有以下一种或多种原因:
web.xml
<%@page %>
isELIgnored=true
<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>