gpt4 book ai didi

java - 如何在Struts 2 Action类中接收由jquery的getJSON()发送的json请求数据?

转载 作者:行者123 更新时间:2023-11-30 02:41:20 28 4
gpt4 key购买 nike

我正在创建一个基于 Struts 2 的 Web 应用程序,我想在其中通过 getJSON() 发送包含 JSON 数据的请求。 jQuery 到 Action 类。这一切正在发生。

但是我的 Action 类无法接收 JSON 数据。提前感谢任何努力。

$.getJSON("getPaycells", {
level: $(this).val(),
ajax: 'true'
}, function(j){});

<action> struts.xml 中的元素:

<action name="getPaycells" class="pkg.ActionClassName">    
<exception-mapping exception="java.lang.Exception" result="ERROR" />
<interceptor-ref name="json">
<param name="contentType">application/json</param>
</interceptor-ref>
<result type="json"/>
</action>

Action 类:

public class PayMatrix extends ActionSupport
{
private Map data = new HashMap();

public Map getData()
{
return data;
}

public void setData(Map data)
{
this.data = data;
}

public String execute()
{
System.out.print("MYDATA-"+data);
return null;
}
}

最佳答案

http://tech.learnerandtutor.com/send-json-object-to-struts-2-action-by-jquery-ajax/ 有一篇非常好的文章

尝试将enableSMD设置为true

<interceptor-ref name="json">
<param name="enableSMD">true</param>
</interceptor-ref>

还尝试使用如下所示的东西:

$.ajax({
url: "writeJSON.action",
data: data1,
dataType: 'json',
contentType: 'application/json',
type: 'POST',
async: true,
success: function (res) {
....
}
});

如果 json 拦截器没有特定属性,则它会丢弃您的请求。

我自己通过在org.apache.struts2.json.JSONInterceptorintercept方法中设置一些断点解决了我的问题,这将帮助我解释为什么拦截器不适用应我的要求。

关于java - 如何在Struts 2 Action类中接收由jquery的getJSON()发送的json请求数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41607990/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com