在Struts2中使用OGNL优于典型EL的优点

时间:2010-01-14 03:05:47

标签: struts2 el ognl

假设我没有利用OGNL创建我的Struts2 Web应用程序,只是纯粹使用Sun提供的典型el。它的缺点是什么?

据我所知,OGNL是一种表达式,它试图根据当前状态匹配ValueStack的最佳匹配值。也可以通过单独使用EL来实现吗?

提前感谢您的回复

丹尼尔

2 个答案:

答案 0 :(得分:9)

简答:是的,您可以使用JSP EL而不是OGNL。两种语言都有其优点和缺点,但使用这两种语言都没有迫在眉睫的缺点。

长答案: OGNL在XWork和Struts2内部使用,因此您无法实际删除依赖项本身,但是您当然可以在JSP视图层中主要(甚至是唯一地)使用JSP EL。

使用任何一种表达语言都有利有弊。 OGNL在JSP EL上的一个领域是动态创建地图和集合,例如支持<select/>元素等。

但是,在大多数情况下,我发现JSP EL更适合我,因为我大量使用JSP简单标记(.tag文件)。

@Amit Sharma:我不同意在OGNL上使用JSP / JSTL而Struts标签违背了使用Struts2的目的。拦截器框架,类型转换和结果类型是使用Struts2的最可扩展和最令人信服的理由。这些都不依赖于任何特定的视图技术。

答案 1 :(得分:2)

即使您选择不在您的struts2 Web应用程序中使用OGNL,我也认为不可能这样做。 Struts2在内部使用OGNL进行数据传输和类型转换。如果您打算使用struts2,则必须使用OGNL,如果不这样做,struts2会自动执行。

虽然你可以省略OGNL并使用纯EL,但是这样使用struts2的全部目的都会失败因为如果你没有使用struts2的内置功能,你可能正在使用EL从头开始编写这些机制。

虽然最初可能看起来很奇怪,但OGNL非常强大,值得在struts2中进行开发时考虑。