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

  1. 深入了解Struts2返回JSON数据的原理

    首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...

  2. (转)Struts2返回JSON数据的具体应用范例

    转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...

  3. Struts2返回JSON数据的具体应用范例

    早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找 ...

  4. Struts2返回JSON数据的具体应用范…

    Struts2返回JSON数据的具体应用范例 博客分类: Struts2 Struts2JSON  早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...

  5. struts2 的验证框架validation如何返回json数据 以方便ajax交互

    struts2 的验证框架validation简单,好用,但是input只能输出到jsp页面通过struts2的标签<s:fielderror  />才能取出,(EL应该也可以). 如果使 ...

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

    这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据. 一.其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的&q ...

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

    1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...

  8. J2EE Web开发入门—通过action是以传统方式返回JSON数据

    关键字:maven.m2eclipse.JSON.Struts2.Log4j2.tomcat.jdk7.Config Browser Plugin Created by Bob 20131031 l ...

  9. struts返回json数据

    想要在struts中返回json格式数据有两种办法. 1.使用servlet的输出流 实际上就是在struts中获取response对象的输出流.然后写入你要返回的json数据,本质和用servlet ...

随机推荐

  1. MySQL数据库设置远程访问权限方法小结

    http://www.jb51.net/article/42441.htm MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访 ...

  2. linux 文件系统与磁盘修复

    fsck修复受损的文件系统   Linux不正常关机,有时候再次启动时会报文件系统损坏,如何修复文件? 首先会让你输入root用户的密码.  1)出错的时候如果告诉你是哪一块硬盘的分区有问题,比如是/ ...

  3. python网络爬虫 - 设定重试次数内反复抓取

    import urllib.request def download(url, num_retries=2): print('Downloading:', url) try: html = urlli ...

  4. javascript简写精练

    一.算术运算符 var n = 5,v; 1.n = n*5; 2.n*=5; 同 n = n*5 二.条件判断 var b = true; 1.if (!false) { alert('true') ...

  5. 微信小程序 - 怎样合理设计小程序

    假如我们无意中,把腾讯地图或者高德地图的管理Key删了! 关于定位的一切相关模块就都会报废! 接着呢?客户会找你,对你公司信任感下降,一系列问题接踵而来 最好的办法就是先预留key后台管理 “随时可以 ...

  6. oracle下的数据库实例、表空间、用户及其表的区分

    完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Ora ...

  7. Atlas系列一:Atlas功能特点FAQ

    1:Atlas是否支持多字符集? 支持,可以在test.cnf中指定. #默认字符集,设置该项后客户端不再需要执行SET NAMES语句charset = utf8 2:Atlas是否支持事物操作? ...

  8. 解决 nfs挂载错误wrong fs type, bad option, bad superblock

    yum install nfs-utils mount -t nfs 192.168.1.153:/taimei /taimei

  9. NDK编译常用命令及不同版本so编译方法

    工具说明 addr2line 把程序地址转换为文件名和行号.在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号. ar 建立.修改.提取归 ...

  10. 〖Android〗Android源代码所有目录生成的Target(编译生成文件反查)

    => build/tools/zipalign: out/host/linux-x86/bin/zipalign (host) => build/tools/atree: out/host ...