修改Struts2 s:token标签返回的token

Modify the token returned by Struts2 s:token tag

在 Struts 2 webapp(也使用 Spring)中, 我想修改 <s:token> 标签的 "output" 以使用我自己的令牌生成算法。

<s:token> 标签似乎由名为 org.apache.struts2.components.Token, which is a UIBean 的 class 处理。是否有使用 Struts 或 Spring 的标准方法,我可以通过它 "extend" 或 "modify" 或替换 Token class 或方法它用于生成令牌?

或者,我可以自己制作在 Struts 2 中有效的 <mytoken> 标签吗?

目前在最新的 S2 版本 2.3.20 中没有简单的方法可以做到这一点。负责生成令牌的 TokenHelper class 是一个带有静态方法的简单实用程序 class。

您最好使用自己的自定义令牌解决方案。您需要一个处理令牌的拦截器和将令牌放入 JSP 的东西。为此,您可以创建自定义标签或只使用隐藏的输入来调用基本操作中的某些方法。

注意:execAndWait 拦截器也使用 TokenHelper,所以如果您使用 execAndWait,您也需要更改它。