在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是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. Direct2D教程II——绘制基本图形和线型(StrokeStyle)的设置详解

    目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网友可以去看看.本系列也是介绍Direct2D的教程,是基 ...

  2. javascript扩展时间方法,格式化,加减日期

    /** *对Date的扩展,将 Date 转化为指定格式的String *月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, *年(y)可以用 1-4 个占位符 ...

  3. JavaScript 作用域和闭包——另一个角度:扩展你对作用域和闭包的认识【翻译+整理】

    原文地址 --这篇文章有点意思,可以扩展你对作用域和闭包的认识. 本文内容 背景 作用域 闭包 臭名昭著的循环问题 自调用函数(匿名函数) 其他 我认为,尝试向别人解释 JavaScript 作用域和 ...

  4. 好久不git这么多问题

    本来想把本地项目上传GitHub一下,打开gitbash, git init 之前配置过了 用户名和邮箱以及ssh等 $ git remote add origin https://github.co ...

  5. Android学习笔记九:Service

    一:Service是什么 Service,服务.一般用于提供需要在后台长期运行的服务(如复杂计算.下载等等耗时任务),其特点是长生命周期的.没有用户界面.在后台运行的. 二:Service的生命周期方 ...

  6. Java同步机制之Monitor监视器与syncrhoized实现原理

    转载请注意原文地址:http://www.cnblogs.com/ygj0930/p/6561667.html  一:Monitor Monitor是一个同步工具,相当于操作系统中的互斥量(mutex ...

  7. Linux 混合编译opencv与opencv_contrib的android版本

    一.该方法只能编译.a文件 使用该脚本:https://github.com/tzutalin/build-opencv-for-android $ git clone https://github. ...

  8. 令Django 视图有默认 login_required

    方法一 from django.template import RequestContext from django.shortcuts import render_to_response from ...

  9. V-rep学习笔记:ROSInterface

    Ubuntu 14.04 上安装V-rep 3.4.0 进入VREP官网下载Linux版本的V-rep(注意V-rep 3.4.0只有64位的版本,因此操作系统也要与之对应,Ubuntu 32位系统就 ...

  10. V-rep学习笔记:外部函数调用方式

    The remote API functions are interacting with V-REP via socket communication in a way that reduces l ...