【问题标题】:How to use Struts 2 token in JQuery Ajax?如何在 JQuery Ajax 中使用 Struts 2 令牌?
【发布时间】:2014-05-12 04:40:49
【问题描述】:

如何在 jQuery Ajax 中使用 Struts2 令牌?

这是我的示例代码,但它返回空值。

<body>
<s:token />
<script>
    var strutsToken = "<s:property value="#session['struts.tokens.token']" />";

    var token = {
        "struts.token.name": "token",
        "token": strutsToken
    };

    alert(token.token);
</script>

<s:if test="hasActionErrors()">
    <s:actionerror />
</s:if>
<br>
<s:form action="UpdateUser">
    <s:textfield name="name" label="User Name"></s:textfield>
    <s:textfield name="address" label="Address"></s:textfield>
    <s:submit name="submit" value="Update"></s:submit>
    <s:token />
</s:form>

【问题讨论】:

标签: java jquery ajax jsp struts2


【解决方案1】:

在进行 Ajax 调用之前,您需要生成一个令牌。

s:token 标签只是放置一个隐藏元素,其中包含 唯一的令牌。

您需要将此隐藏元素放在表单中,以便将其包含在提交的其他字段中。检查&lt;s:token&gt; tag 的使用情况。如果您想进行 Ajax 调用,您可以通过多种方式进行,因此您也可以查看此答案以获取 Struts token interceptor。一种方法是使用 jQuery 插件及其&lt;sj:submit&gt; tag。

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<html>
  <head>
    <sj:head/>
  </head>
  <body>

<s:form action="UpdateUser">
    <s:textfield name="name" label="User Name"></s:textfield>
    <s:textfield name="address" label="Address"></s:textfield>
    <sj:submit name="submit" value="Update"></s:submit>
    <s:token />
</s:form>

【讨论】:

    猜你喜欢
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 2012-01-13
    相关资源
    最近更新 更多