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

来源:互联网 发布:5x5矩阵的行列式怎么算 编辑:程序博客网 时间:2024/05/17 23:01

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




阅读全文
0 0
原创粉丝点击