struts2:避免在 struts 标签、jsp 中进行硬编码

发布于 2024-12-17 21:39:21 字数 200 浏览 2 评论 0 原文

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

#session['object_key']

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

When using struts2 I can access my session attributes inside struts2 tags using OGNL expression like this:

#session['object_key']

The problem is that I use this expression on different pages, every time hardcoding that 'object_key' string. Is there any way I can use any sort of named constant, so that I can easily change the key used to store my object in session map?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

℡寂寞咖啡 2024-12-24 21:39:21

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

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

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

有关详细信息,请参阅访问 rel="nofollow">OGNL 基础 页面。

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

那么 JSP 中所需要的就是:

${session[OBJECT_KEY]}

Sure, use a static constant; there are several options for how to go about this.

Default, access using fully-qualified name:

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

For details, see Accessing static properties in the OGNL Basics page.

Another trick is to set up an interceptor that pushes a class of constants onto the value stack, with constant-"looking" getters. You could do the same in an action as well, for example, a base action class could be used.

Then all that's needed in the JSP is this:

${session[OBJECT_KEY]}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文