Struts2学习-ajax返回JSON
程序员文章站
2022-04-04 12:38:15
...
ajax是我们开发过程中常常用到,那么当ajax碰到struts2又会发生什么样的事情呢?通常笔者在使用ajax过程时更多是从服务端返回json格式的数据。下面就说说如何通过struts2来返回json数据。
首先来看一下我的struts2配置文件中action的配置
<package name="account" extends="struts-default" namespace="/account"> <action name="add" method="addAccount" class="org.lian.account.actions.AccountAction" > <result type="stream"> <param name="contentType">text/html</param> <param name="inputName">inputStream</param> </result> </action> </package>
接下来是Action,Java类设计
public class AccountAction extends ActionSupport { private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public String addAccount() throws IOException { Map<String, String> map = new HashMap<String, String>(); map.put("flag", "添加成功"); String result = GsonUtil.getInstance().convertToJson(map); inputStream = new ByteArrayInputStream(result.getBytes("UTF-8")); return SUCCESS; } }
Java对象和json字符串相互转换,使用google的gson工具包,使用的版本是2.8.0,下面是我工具类的代码
import com.google.gson.Gson; public class GsonUtil { private static GsonUtil util; private GsonUtil() { } public static GsonUtil getInstance() { if (util == null) util = new GsonUtil(); return util; } /** * * @description TODO * @param obj * @return * @return String */ public String convertToJson(Object obj) { Gson gson = new Gson(); return gson.toJson(obj); } /** * * @description TODO * @param json * @param type * @return * @return T */ public <T> T parseJson(String json, Class<T> type) { Gson gson = new Gson(); return gson.fromJson(json, type); } }
笔者已经将gson工具包上传了,如需要可以自行下载。
推荐阅读
-
javascript解析ajax返回的xml和json格式数据实例详解
-
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
-
ASP.NET使用Ajax返回Json对象的方法
-
struts2中action实现ModelDriven后无法返回json的解决方法
-
ThinkPHP通过AJAX返回JSON的两种实现方法
-
JQuery ajax返回JSON时的处理方式 (三种方式)
-
JQuery ajax 返回json时出现中文乱码该如何解决
-
jQuery通过Ajax向PHP服务端发送请求并返回JSON数据
-
Jquery Ajax 返回的json不执行success的原因详解
-
如何将ajax请求返回的Json格式数据循环输出成table形式