struts2:避免struts标签中的硬编码,jsp

时间:2011-11-25 13:36:10

标签: jsp struts2 ognl hardcode

使用struts2时,我可以使用OGNL表达式访问struts2标记内的会话属性,如下所示:

#session['object_key']

问题是我在不同的页面上使用这个表达式,每次硬编码'object_key'字符串。有什么方法可以使用任何类型的命名常量,这样我就可以轻松地更改用于在会话映射中存储我的对象的键吗?

1 个答案:

答案 0 :(得分:3)

当然,使用静态常数;有几种方法可以解决这个问题。

默认,使用完全限定名称进行访问:

<s:property value="#session[@app.Constants@OBJECT_KEY]" />

有关详细信息,请参阅Accessing static properties页面中的OGNL Basics

另一个技巧是设置一个拦截器,将一类常量推送到值堆栈上,使用常量“看起来”的getter。您也可以在动作中执行相同操作,例如,可以使用基本动作类。

然后JSP中需要的就是:

${session[OBJECT_KEY]}