在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是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正则匹配某列是否含有手机号

    SELECT COUNT(1) FROM t_user WHERE user_name REGEXP ".[1][35678][0-9]{9}."; 解释: 正则中 .的意思是所有 ...

  2. Javascript 面向对象实践

    踩到了坑,才能学到东西. 记录我在慢慢的转向模块化遇到的问题以及解决的思路. 1.采用立即执行函数,闭包的方式创建模块 html: <!DOCTYPE html> <html lan ...

  3. 在java中像js那样处理json数据

    工作中经常需要通过ajax向前台返回json数据,都是通过拼字符串拼出来的,很发麻烦不说,还容易出错. 于是想,能不能像js那样操作json呢?或者说更方便的操作呢? Google的gson就是这样的 ...

  4. LXC 容器集chroot使用说明

    1.1 LXC是什么? 1.1.1 关于LXC LXC,其名称来自Linux软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level vi ...

  5. Android Studio Gradle优化方法

    第一步:打开AS安装所在的位置,用记事本打开"红色框"选中的文件. 如图: 第二步:打开"studio64.exe.vmoptions"文件后修改里面的值,修改 ...

  6. 【树形DP】 HDU 2412 Party at Hali-Bula

    给出根节点(BOSS) 然后还有N-1个边  A B 由B指向A (B为A 的上司) 每次仅仅能选择这个关系中的当中一个 求最多选几个点 而且输出是不是唯一的 重点推断是否唯一: 1.若下属不去和去都 ...

  7. [UIView setShowsFPS:]: unrecognized selector sent to instance XXX

    今天在做sprite Kit game时遇到一个问题. 新建一个项目运行时发现就加了这几句代码无法运行.后来一查原来是storyboard uiview要改一下.改成SKview In your st ...

  8. LintCode: Count and Say

    C++ class Solution { public: /** * @param n the nth * @return the nth sequence */ string countAndSay ...

  9. 【树莓派】树莓派与XBMC及Kodi、LibreELEC插件(二)

    之前的相关文章参考: [树莓派]树莓派与XBMC及Kodi.LibreELEC插件(一) [树莓派]树莓派与XBMC及Kodi.LibreELEC插件(二) [树莓派]树莓派与XBMC及Kodi.Li ...

  10. (转)pip和easy_install使用方式

    easy_install 跟 pip 都是 Python 的套件管理程式,有了它們,在使用 Python 開發程式的時候會帶來不少方便. easy_install 和 pip 有什麼不一樣?據 pip ...