【Struts2】SSH如何返回JSON数据

  在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是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 block
25             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 block
26             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数据

时间: 2024-12-13 06:25:13

【Struts2】SSH如何返回JSON数据的相关文章

转载:深入了解Struts2返回JSON数据的原理及具体应用范例

早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身, 渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找我询问,我又细细地给他讲了一遍之后,才觉得无论如何要抽一个小时的时间来写这篇文章, 从头到尾将Struts2与JSON的关系说清楚. 其实网络中,关于这个问题的答案已是海量,我当初也是从这海量的答案中吸收精华,才将“Struts2返回JSON数据”这个问题搞清楚的.但 是这些海量的答案,有一个共同

Struts2返回Json数据(使用Struts2插件)

这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据. 一.其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的"/WEB-INF/lib"文件夹下: 2.编写Action类文件: 3.在struts.xml文件中配置这个Action,这个Action所在的"<package.../>"必须继承”json-default“,Action的Result类型为json,即ty

jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)

1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @ParentPackage(WapBaseAction.WAP_PACKAGE) //WAP_PACKAGE继承了json-default @Namespace("/") public class ModifyResumeAction extends WapBaseAction {... [emai

Struts2 Convention插件的使用(4)使用@Action注解返回json数据

package com.hyy.action; import java.util.HashMap; import java.util.Map; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; imp

struts返回json数据

想要在struts中返回json格式数据有两种办法. 1.使用servlet的输出流 实际上就是在struts中获取response对象的输出流.然后写入你要返回的json数据,本质和用servlet返回json数据是一样的,需要自己导入json的jar包.不做详细介绍. 2.试用struts对json的扩展 这里需要两个jar包,xwork-core-2.1.6.jar和struts2-json-plugin-2.1.8.jar.如果是用MyEclipse注入的struts环境就不需要手动了.

JavaEE-stuts2返回json数据简单实现

CSDN的ASK频道,看到关于struts2返回json数据的问题,整理了下struts2的简单demo,完成JSON数据的展示. Action定义 public class ValidateAction extends ActionSupport { private static final long serialVersionUID = 1L; private String username; public Map<String, Object> result = new HashMap&

CoAP学习笔记——nodeJS node-coap返回JSON数据包

0 前言 本文说明如何使用node-coap返回JSON数据包.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议文档--The Constrained Application Protocol (CoAP)] [CoAP协议学习--CoAP基础] [CoAP学习

idea+springmvc+spring+mybatis+maven整合返回json数据webapi

首先看一张目录结构图: : 创建步骤: 1.创建maven  webapp工程, 创建完后的目录结构为: 2.添加项目依赖(添加jar包) 需要的jar包: spring-webmvc, spring-test, spring-orm, commons-dbcp, mybatis, mybatis-spring, mysql-connector-java, commons-fileupload, jstl,jackson-core, jackson-databind, jackson-mappe

PHP-------ajax返回值 返回JSON 数据

ajax返回值  返回JSON  数据 ajax返回值 有text   JSON ajax返回值  返回JSON  数据 1 <title>无标题文档</title> 2 <script src="../jquery-1.11.2.min.js"> 3 </script> 4 5 <!--ajax返回值 有text JSON--> 6 <!--ajax返回值 返回JSON 数据--> 7 8 9 10 11 <