Las expresiones EL no se ejecutarán en Tomcat 5.5, sino que funcionarán en tomcat 6.0.20

Estoy desarrollando mi aplicación usando spring-web-mvc …

Ahora en mi controlador, vuelve así:

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); } 

Ahora, mi JSP contiene el siguiente código:

   

Ahora cuando estoy ejecutando esto en la plataforma Windows donde tengo tomcat 6.0.20, ognl 2.6.11 me está dando el resultado exacto que quiero:

 117 eth1 118 eth1 119 eth0 

Pero, cuando estoy desplegando el archivo war en la plataforma Unix (cen os), donde tengo tomcat 5.5, la expresión ognl no se ejecuta y me da como resultado:

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

¿Alguien puede tener una solución, cuál debería ser el problema con la versión de expresión de ognl y la versión de tomcat?

Gracias por adelantado…

Pero cuando despliegue un archivo war en la plataforma Unix (CentOS), donde tengo Tomcat 5.5, la expresión EL no se ejecuta y me da como resultado:

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

En otras palabras, la expresión EL no se evalúa en absoluto y se muestra como texto sin formato. Eso puede tener una o más de las siguientes causas:

  1. El servidor de aplicaciones en cuestión no es compatible con JSP 2.0.
  2. El web.xml no está declarado como Servlet 2.4 o superior.
  3. La <%@page %> de JSP está configurada con isELIgnored=true .
  4. El web.xml está configurado con true en .

Tomcat 5.5 es Servlet 2.4 / JSP 2.0, por lo que el n.º 1 puede rayarse. No cambiaste nada en la aplicación web antes de implementar, supongo, por lo que es probable que los # 3 y # 4 se rayen. Ahora dejó # 2. Tal vez lo declaraste como Servlet 2.5 para Tomcat 6.0, mientras que Tomcat 5.5 solo entiende hasta con Servlet 2.4. De esta forma, todo se convertirá en un desastre ya que Tomcat retrocederá a un modo de compatibilidad mínimo. web.xml redeclarar web.xml como Servlet 2.4 para que funcione tanto en Tomcat 5.5 como en 6.0. La statement debería verse así:

    

¿Estás seguro de haber incluido la biblioteca JSTL en Tomcat o en la carpeta lib de tu aplicación web?

Estos enlaces te ayudarán a:

Cómo configurar Tomcat para trabajar con JSTL

Cómo hacer referencia y usar jstl en su aplicación web

Gracias a BalusC por su excelente respuesta. Tuve exactamente el mismo problema que diagnosticó anteriormente, y su solución me ayudó a llegar allí. Sin embargo, también tuve que asegurarme de que varias dependencias JSP y JSTL de mi aplicación fueran todas compatibles. En particular, estaba haciendo referencia a JSTL 1.2 y este problema no desapareció hasta que cambié esa dependencia a JSTL 1.1.2 (en ese punto también tuve que agregar una dependencia explícita a taglibs.standard: 1.1.2).

La siguiente publicación de blog proporciona mucha más información sobre compatibilidad entre diferentes versiones: http://www.mularien.com/blog/2008/04/24/how-to-reference-and-use-jstl-in-your-web -solicitud/