当前位置:  开发笔记 > 编程语言 > 正文

EL表达式不会在Tomcat 5.5中执行,而是在tomcat 6.0.20中运行

如何解决《EL表达式不会在Tomcat5.5中执行,而是在tomcat6.0.20中运行》经验,为你挑选了1个好方法。

我正在使用spring-web-mvc开发我的应用程序...

现在在我的控制器上,它返回如下:

  public class InterfacesManageController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception  {

    Map myModel = new HashMap();

    myModel.put("interfacesList", this.interfacesSecurityProcessor.findByAll(0, null, null, null));

    return new ModelAndView("common", "model", myModel);
}

现在,我的JSP包含以下代码:


      

现在,当我执行此操作到Windows平台,我有tomcat 6.0.20,ognl 2.6.11它给了我我想要的确切输出:

117 eth1

118 eth1

119 eth0

但是,当我在unix(cent os)平台上部署war文件时,我有tomcat 5.5,ognl表达式没有被执行并给我输出如下:

${prod.id} ${prod.name}

任何人都可以有解决方案,ognl表达版本和tomcat版本应该是什么问题?

提前致谢...



1> BalusC..:

但是,当我在Unix(CentOS)平台上部署war文件时,我有Tomcat 5.5,EL表达式没有执行,并给我输出如下:

${prod.id} ${prod.name}

换句话说,EL表达式根本没有得到评估并显示为纯文本?这可能有以下一个或多个原因:

    有问题的应用程序服务器不支持JSP 2.0.

    web.xml未声明为的Servlet 2.4或更高版本.

    <%@page %>JSP的配置有isELIgnored=true.

    web.xml被配置为与true.

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.xmlServlet 2.4,以便它可以在Tomcat 5.5和6.0中运行.声明应如下:



    


推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有