【问题标题】:Is there any existing tag-lib with token-tag built in form-tag是否有任何现有的 tag-lib 带有内置在 form-tag 中的 token-tag
【发布时间】:2014-10-06 22:32:28
【问题描述】:

为了通过 Struts2 表单传递 XSRF 令牌,我必须将令牌标记放在所有表单中。 tiles-def 中的基线 jsp 不能有包罗万象的形式。

您是否曾经将表单标签扩展为默认包含令牌标签,或者知道某些库可以做到这一点?

我没有探索过Freemarker模板,所以不知道这是否可行。如果没有现成的解决方案,我会尝试自己构建。

【问题讨论】:

  • 只需编辑 <s:form> 标签模板以包含令牌。
  • 谢谢阿列克斯。在表单模板中包含令牌没有成功,因为令牌模板没有在请求中获得所需的令牌属性。标签 s:token 是生成 token 属性所必需的。
  • token-template 没有在请求中获得所需的令牌属性 是什么意思?也许您可以发布您拥有的代码并询问有关您遇到的错误的具体问题。
  • 事后看来,就我的目的而言,它来得太晚了,我看到了“”是否会调用标记类以及在当前模板中包含令牌标记的模板,我会更新。
  • 像魅力一样工作:-)。我的自定义表单关闭模板如下所示:

标签: struts2 freemarker


【解决方案1】:

从 cmets 部分合并,

1) 创建一个新主题

2) 将“form-close.ftl”扩展至此

<@s.token/>
<#include "/${parameters.templateDir}/xhtml/form-close.ftl" />

在您的堆栈中添加tokenSession(或token)拦截器。

通过这些更改,所有 struts 表单都将添加一个 struts-token,而无需在每个表单中指定 &lt;s:token&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多