我想将我的JSON对象从Javscript发送到Struts2 Action。
样本JSON对象
{
"lists":["list1","list2","list3","list4","list5"],
"maps": {
"key4":"value4","key3":"value3","key5":"value5","key2":"value2","key1":"value1"
},
"number1":123456789,
"numberarray1":[1,2,3,4,5,6,7,8,9],
"string1":"A",
"stringarray1":["A1","B1"]
}
我的Jquery Ajax
$.ajax({
type: 'POST',
url: 'json/JSON.action',
data: JSON.stringify(data),
dataType: 'json',
async: false ,
contentType: 'application/json; charset=utf-8',
success: function(){window.alert('Done');}
});
Struts.xml配置
<action name="JSON" class="com.actions.json.JsonAction" method="getJSON">
<result type="json"/>
</action>
我的动作课
public class JsonAction extends ActionSupport {
private String data;
public String getJSON() {
return ActionSupport.SUCCESS;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
我的问题是如何在Action类中接收JSON对象。
注意:POST OF JSON对象成功。.我只是不知道如何通过Action Class接收它。.请帮助谢谢
struts.xml
输入的内容有错别字struts.xml
? data
密钥。因此它将始终为null。由于json表示为对象。您需要通过这种方式将JSON转换为Java对象。方法1。
为lists,maps,number1,numberarray1,string1
等等创建setter 。在
此链接
的顶部,定义了执行方法。然后,您可以通过这种方式访问所有变量。
方法2。 在您的JavaScript中定义一个新对象。
var sentData ={};
sentData ["sentData "] = data;
// And in your ajax call ,
data: JSON.stringify(sentData),
在您的动作课中,为此创建吸气器和吸气器。
Map<K.V> sentData = new HashMap<K,V>();
这将为您提供整个json对象作为Map。
主要内容:创建动作:,创建视图,执行应用程序,建立多个动作:动作是Struts2框架的核心,因为他们的任何MVC(模型 - 视图 - 控制器)框架。每个URL将被映射到一个特定的动作,它提供了来自用户的请求提供服务所需的处理逻辑。 但动作也提供其他两个重要的能力。首先,操作从请求数据的传输中起着重要的作用,通过向视图,无论是一个JSP或其它类型的结果。二,动作必须协助的框架,在确定结果应该渲染视图,在响应该请求将被退回。 创建动作: 在Struts2的动作
主要内容:1. 动作 - Action,2. 可选动作接口,3. ActionSupport,4. 动作注释,总结在Struts2中,会花大部分的时间用在用动作来处理工作。动作类包含业务逻辑,获取资源包,保存数据,验证,并选择应发回给用户的视图的结果页面。这是Struts2的核心,所以必须要了解动作的基本概念。 1. 动作 - Action Struts 2动作不强迫你实现任何接口或扩展类,它只是需要你实现一个 execute()方法返回一个字符串来表示其应该返回的结果页面。 在struts.x
问题内容: 我想从一个请求转发 的Servlet 来 操作 这样使用这样的 没用 我该如何解决这个问题? 问题答案: 为此,您可能还需要将过滤器设置为在FORWARD上运行(并在代码中显示INCLUDE,尽管您声明要使用FORWARD):
主要内容:映射拦截动作,参考Struts 2的开发者用来声明行为属于一个包,扩展 “struts-default“, 其中包含默认设置的拦截。 拦截器的默认设置进行分组为“defaultStack”在struts-default.xml文件中,它位于 struts2-core.jar 文件,“defaultStack”提供所有的核心Struts2功能,这是最适合应用的需要。 试着学习struts-default.xml文件,
主要内容:1. 域对象,2. 动作 - Action,3. JSP页面,4. struts.xml,5. 示例这里我们创建一个web工程为:struts2-modeldrive ,用于讲解演示Struts2模型驱动这一章内容的学习。 如果一个动作实现了“模型驱动”- ModelDriven 接口,它就获得了表单数据自动传输到对象的额外能力。请参见下面的完整的例子: 1. 域对象 一个顾客(customer)对象,有 setter 和 getter 方法。 Customer.java 2. 动作
下面是我的代码: 导入com.opensymphony.xwork2.ActionSupport; 导入java.sql.DriverManager;导入java.sql.ResultSet; 附注。我使用Intellij Idea 14.1.4 有人知道原因吗?