【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数据
【Struts2】SSH如何返回JSON数据的更多相关文章
- 深入了解Struts2返回JSON数据的原理
首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...
- (转)Struts2返回JSON数据的具体应用范例
转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...
- Struts2返回JSON数据的具体应用范例
早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找 ...
- Struts2返回JSON数据的具体应用范…
Struts2返回JSON数据的具体应用范例 博客分类: Struts2 Struts2JSON 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...
- struts2 的验证框架validation如何返回json数据 以方便ajax交互
struts2 的验证框架validation简单,好用,但是input只能输出到jsp页面通过struts2的标签<s:fielderror />才能取出,(EL应该也可以). 如果使 ...
- Struts2返回Json数据(使用Struts2插件)
这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据. 一.其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的&q ...
- jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)
1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...
- J2EE Web开发入门—通过action是以传统方式返回JSON数据
关键字:maven.m2eclipse.JSON.Struts2.Log4j2.tomcat.jdk7.Config Browser Plugin Created by Bob 20131031 l ...
- struts返回json数据
想要在struts中返回json格式数据有两种办法. 1.使用servlet的输出流 实际上就是在struts中获取response对象的输出流.然后写入你要返回的json数据,本质和用servlet ...
随机推荐
- css 下边框
float: left; width: 1200px; height: 42px; background-color: #fff0; /* background-color: #4f4aff; */ ...
- Python标准库:内置函数type(object)
type(object) type(name, bases, dict) 本函数是返回对象的类型对象.仅仅有一个參数object时,直接返回对象的类型对象.假设仅仅是想推断一个对象是否属于某一个类的对 ...
- redis 安装报错
CentOS 6.5 安装 Redis 执行 make #error "Newer version of jemalloc required" 根据你系统安装时或之后安装的选项的情 ...
- JavaScript常用设计模式
单例模式:确保类只能被实例化一次. var obj = {} 2.函数返回值 var func = function () {return {}} var obj = func(); 3.构造函数初始 ...
- Zabbix通过Nginx状态来监控网站并发量
一.开 启Nginx状态 一.安装Nginx 执行命令:yum install nginx 二.启动Nginx 执行命令:systemctl start nginx 三.配置Nginx开启Status ...
- websocket与canvas[转]
server端还是用tomcat7的方式客户端 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ...
- 转:nginx模块开发——handler(一)
handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-ba ...
- 算法笔记_232:提取拼音首字母(Java)
目录 1 问题描述 2 解决方案 1 问题描述 在很多软件中,输入拼音的首写字母就可以快速定位到某个词条.比如,在铁路售票软件中,输入: “bj”就可以定位到“北京”.怎样在自己的软件中实现这个功 ...
- 算法笔记_202:第三届蓝桥杯软件类决赛真题(Java高职)
目录 1 填算式 2 提取子串 3 机器人行走 4 地址格式转换 5 排日程 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 填算式 [结果填空] (满分11分) 看这个算式: ☆☆☆ + ☆☆ ...
- top命令参数
参数说明 d 指定每两次屏幕信息刷新之间的时间间隔.当然用户可以使用s交互命令来改变之. p 通过指定监控进程ID来仅仅监控某个进程的状态. q该选项将使top没有任何延迟的进行刷新.如果调用程序有超 ...