7

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

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

提前感谢您的回复

丹尼尔

4

2 回答 2

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 的最可扩展和最令人信服的理由之一。这些东西都与任何特定的视图技术无关。

于 2010-11-05T03:23:15.400 回答
2

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

尽管您可能会省略 OGNL 并使用纯 EL,但这样一来,使用 struts2 的整个目的就会失败,因为如果您不使用 struts2 的内置功能,那么您可能正在使用 EL 从头开始​​编写这些机制。

虽然一开始可能看起来很奇怪,但 OGNL 相当强大,在 struts2 中开发时值得考虑。

于 2010-01-15T11:47:20.857 回答