2011-01-11 15 views
9

Me preguntaba qué es exactamente lo trasladó Primavera utilizar Primavera EL sobre OGNL en su producto de flujo web:¿Beneficios de usar Spring EL sobre OGNL?

http://static.springsource.org/spring-webflow/docs/2.2.x/reference/htmlsingle/spring-webflow-reference.html#el-language-choices

Con OGNL, puedo crear dinámicamente clases simples y ejecutar los métodos, etc., directamente a través del flujo. Sé que no es una buena práctica hacerlo en plantillas de páginas web reales (es decir, JSP), porque están basadas en la presentación, pero el flujo web controla la lógica de tu programa y encuentro la capacidad de utilizar OGNL de manera efectiva para que sea muy conveniente. Además, puedes probar el flujo para asegurarte de que funciona con facilidad.

Así, dos preguntas:

  1. ¿Hay beneficios importantes para el uso de primavera sobre EL OGNL, especialmente en el contexto de la Primavera Webflow?

  2. ¿Se pueden crear objetos con Spring EL?

Respuesta

15

Bueno, el "por qué" se dice en el SpEL docs:

Si bien hay varios otros lenguajes de expresión de Java disponibles, OGNL, MVEL, y JBoss EL, para nombrar unos pocos, la primavera Expression Language se creó para proporcionar a la comunidad Spring un único lenguaje de expresión con soporte que se puede utilizar en todos los productos de la cartera de Spring.

Mientras que OGNL tiene sus ventajas, y sus ventiladores, su funcionalidad es demasiado limitada para lo que se requería para Spring 3, y así nació SpEL. Y debido a que SpEL se convirtió en el lenguaje de expresión base para Spring, WebFlow lo reemplazó como reemplazo de OGNL.

No he tenido muchas razones para usar SpEL mucho, así que no pude decirle cómo hacer una tarea en particular.

En cuanto a sus ventajas, yo diría que la principal es que mientras OGNL ahora está estancada, SpEL es una parte fundamental de la primavera ahora, y por lo que se debe mejorar y ampliar continuamente. Dicho sin rodeos, OGNL está muerto (ahora es mantenido por opensymphony.com, que no es una organización dinámica y activa)

+0

Aceptado. Por cierto, descubrí que puedes usar directamente el nuevo operador en Spring EL, así que sí, ¡puedes crear objetos! Increíble. – MetroidFan2002

+0

@ MetroidFan2002: La semejanza entre EL unificado y SPEl es solo superficial. SpEL es mucho, mucho más expresivo y poderoso, simplemente usa una sintaxis similar. – skaffman

1

No argumentando que SpEL no tiene más sentido para las personas que mantienen Spring, pero OGNL no lo está (completamente) muerto y no es mantenido por opensymphony.

https://github.com/jkuhnert/ognl

Por lo tanto, existe. pfffttttttt

Actualización (23/05/11): Parece que apache hospedará OGNL a partir de ahora. http://incubator.apache.org/projects/ognl.html

Actualización 2 (04/03/2014): http://commons.apache.org/proper/commons-ognl/ ha sido allí por un tiempo, pero sólo se dio cuenta de este hilo al azar de nuevo hoy.

+0

Um ...esa página solo enlaces a opensymphony.com – skaffman

+0

La página de estado es [aquí] (http://incubator.apache.org/clutch.html) – Heathen

+0

SVN es [aquí] (https://svn.apache.org/repos/ asf/incubadora/ognl /). A partir de ahora (2011-05-226) no se han realizado lanzamientos. – Heathen

Cuestiones relacionadas