使用Spring 3.0中的SpEL替换JSP中的EL

时间:2009-12-22 09:20:17

标签: java spring jsp spring-mvc jstl

厌倦了JSP中的旧EL无法调用bean等方法

我可以在JSP中使用SpEL from Spring 3.0:s?

4 个答案:

答案 0 :(得分:15)

即将推出的 Spring Framework 3.0.1版本添加了一个新的spring:eval JSP标记,允许您从JSP页面评估SpEL表达式。

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

未来版本将添加与JSP 2.1或&gt;的本机集成。引擎通过统一的EL适应层。

答案 1 :(得分:3)

它会很好,不是吗,但不是,JSP EL是JSP编译器的一个功能。你能做的最好的事情就是编写一个自定义的taglib来评估包含的SpEL表达式,这些表达式相当笨重。

答案 2 :(得分:1)

如果可以升级,您可以在最新的JSP EL / Java EE实现中获得方法调用支持(例如,使用GlassFish v3的Java EE 6)。 JUEL(EL实现)doc page suggests您可以通过将类放入JRE的ext目录中,或者将它们放在WEB-INF/lib中并依赖于SPI机制来升级(这取决于您的容器支持这个)。最新的JUEL版本支持方法调用。

我对Spring的实现知之甚少,不知道他们是如何插入EL支持的。

答案 3 :(得分:1)

我以McDowell描述的方式在Tomcat中使用JBoss EL。我在我的应用程序的WEB-INF / lib中包含了jboss-el.jar,并将此片段添加到web.xml中:

  <!-- jboss el expressions allow method params -->
  <context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
  </context-param>