分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

【Struts2】SSH如何返回JSON数据

发布时间:2023-09-06 01:08责任编辑:董明明关键词:暂无标签

  在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了。在这里以简单的Demo总结两种ssh返回Json格式的数据

项目目录如下

主要是看 上图选择的部分 WebRoot里面就是平常的配置

第一种方法是使用com.google.gson.Gson 将对象转化为Json字符串  (gson-1.6.jar) 主要的代码如下

 1 package com.javen.tool; 2 ?3 import java.io.IOException; 4 import java.io.PrintWriter; 5 ?6 import javax.servlet.http.HttpServletResponse; 7 ?8 import com.google.gson.Gson; 9 10 public class ResultUtils {11 ????public static void toJson(HttpServletResponse response, Object data) 12 ????????throws IOException {13 ????????Gson gson = new Gson();14 ????????String result = gson.toJson(data);15 ????????response.setContentType("text/json; charset=utf-8");16 ????????response.setHeader("Cache-Control", "no-cache"); //取消浏览器缓存17 ????????PrintWriter out = response.getWriter();18 ????????out.print(result);19 ????????out.flush();20 ????????out.close();21 ????}22 23 ??24 }

在Action中我们直接将返回的数据封装成Map对象即可 再使用上面的工具类即可 

 1 public String execute() { 2 ????????Map<String, Object> map = new HashMap<String, Object>(); 3 ????????String status = null; 4 ????????try { 5 ????????????System.out.println(name + "" + pass); 6 ????????????if (!Tools.isEmpty(name) && !Tools.isEmpty(pass)) { 7 ????????????????User user = new User(); 8 ????????????????user.setName(name); 9 ????????????????user.setPassword(pass);10 ????????????????List<User> list = userHander.getUserDAO().findByExample(user);11 ????????????????System.out.println(list.size());12 ????????????????if (list.size() > 0) {13 ????????????????????status = "1";14 ????????????????????map.put("users", list);15 ????????????????} else {16 ????????????????????status = "null";17 ????????????????}18 ????????????} else {19 ????????????????status = "0";20 ????????????}21 ????????????map.put("status", status);22 ????????????ResultUtils.toJson(ServletActionContext.getResponse(), map);23 ????????} catch (IOException e) {24 ????????????// TODO Auto-generated catch block25 ????????????e.printStackTrace();26 ????????}27 ????????return null;28 ????}

  struts 配置如下 

1 <package name="default" extends="struts-default" ?namespace="/">2 ????????<global-results>3 ????????????<result name="error">/Error.jsp</result>4 ????????</global-results>5 ????????6 ????????<action name="userAction" class="userAction">7 ????????</action> ???8 </package>

通过浏览器访问返回的数据如下(http://127.0.0.1:8080/DataJson/userAction?name=javen&pass=123)

第一种方法是使用Struts配置实现 将对象转化为Json字符串   主要的代码如下

1、private Map<String, Object> jsonResult; 将声明的对象封装生成get和set方法

2、封装查询的数据到Map集合中 代码如下

 1 public String userToJson(){ 2 ????????Map<String, Object> map = new HashMap<String, Object>(); 3 ????????String status = null; 4 ????????try { 5 ????????????System.out.println(name + "" + pass); 6 ????????????if (!Tools.isEmpty(name) && !Tools.isEmpty(pass)){ 7 ????????????????User user = new User(); 8 ????????????????user.setName(name); 9 ????????????????user.setPassword(pass);10 ????????????????List<User> list = userHander.getUserDAO().findByExample(user);11 ????????????????System.out.println(list.size());12 ????????????????if (list.size() > 0) {13 ????????????????????status = "1";14 ????????????????????map.put("users", list);15 ????????????????} else {16 ????????????????????status = "null";17 ????????????????}18 ????????????} else {19 ????????????????status = "0";20 ????????????}21 ????????????map.put("status", status);22 ????????????jsonResult=map;23 ????????????return "success";24 ????????} catch (Exception e) {25 ????????????// TODO Auto-generated catch block26 ????????????e.printStackTrace();27 ????????}28 ????????return null;29 ????}

3、配置struts  (注意要extends >>>json-default

<!-- 使用struts2 ?配置来实现 返回Json数据 --> ???<package name="json" extends="struts-default,json-default" ?namespace="/"> ???????<global-results> ???????????<result name="error">/Error.jsp</result> ???????</global-results> ???????<action name="userjson" class="userAction" method="userToJson"> ????????????<result type="json" > ????????????????????<param name="root">jsonResult</param> ?????????????</result> ?????????</action> ???????????</package>

 通过浏览器访问返回的数据如下 

原文链接:SSH返回JSON数据

【Struts2】SSH如何返回JSON数据

原文地址:http://www.cnblogs.com/HDK2016/p/7475958.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved