您的位置:首页 > 编程语言 > Java开发

struts2的配置解释以及使用ajax、创建传输json的两种方式

2017-07-25 18:14 344 查看
struts不像springMVC,对json有很好的支持,所以介绍下在struts中如何使用ajax传输json数据。

js:

在js处都是一样的:

$.ajax({
type: "post",
url: '${root}/json/TbMstJyglbmdm/test_ajax.jspx',
cache:false,
data:null,
dataType:'json',
/*  contentType:"text", */
async:false,
success: function(data){
console.log(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('发生错误');
}
});


1.使用最基础的方式:

JsonObject json = new JsonObject();
json.addProperty("msg", "ok");
json.addProperty("type", "1");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
out.print(json);
} catch (java.io.IOException e) {
e.printStackTrace();
}
通过response的方式out输出结果。

这里使用的是google的gson包。

2.使用struts2之后支持的struts2-json,先去下载jar包。

  (1)引入jar包,maven配置好信息

  (2)在struts文件中,新建package

<package name="json" namespace="/json" extends="json-default">

<action name="TbMstJyglbmdm/test_ajax" method="test_ajax" class="org.my431.base.web.TbMstJyglbmdmAction">
<result name="ok" type="json">
<!-- 这里的jsonData对应action里要返回的map对象 -->
<param name="root">jsonData</param>
</result>
</action>

</package>
package: 

name:名字唯一

namespace:对应地址的url

extends:必须是json-default

action:

name:对应url地址的名称

class:对应哪个class文件

method:该class文件中的某个方法

result:

name:方法的返回值,如:

public String test_ajax() {
return "ok";
}
type:类型必须为json

param:中间的值必须为前台想要接受的值,如我的数据都在jsonData之中。

 (3)写方法:

public String test_ajax() {
dataMap = new HashMap<String, Object>();
// 放入一个是否操作成功的标识
dataMap.put("success", true);
dataMap.put("name", "张三");
dataMap.put("age", 11);

jsonData = new JSONObject();
jsonData.put("text1", "1");
jsonData.put("text2", "2");

return "ok";
}


成功获取数据:



tips:

1.下载的struts2-json必须要版本号与项目的struts相同,不可过高,否则报错。

2.在action处写json时,不要使用com.google.gson,否则传输的数据为空,这里使用的是fastJson
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: