在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了。在这里以简单的Demo总结两种ssh返回Json格式的数据

项目目录如下

主要是看 上图选择的部分 WebRoot里面就是平常的配置

第一种方法是使用com.google.gson.Gson 将对象转化为Json字符串  (gson-1.6.jar) 主要的代码如下

 package com.javen.tool;

 import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import com.google.gson.Gson; public class ResultUtils {
public static void toJson(HttpServletResponse response, Object data)
throws IOException {
Gson gson = new Gson();
String result = gson.toJson(data);
response.setContentType("text/json; charset=utf-8");
response.setHeader("Cache-Control", "no-cache"); //取消浏览器缓存
PrintWriter out = response.getWriter();
out.print(result);
out.flush();
out.close();
} }

在Action中我们直接将返回的数据封装成Map对象即可 再使用上面的工具类即可

 public String execute() {
Map<String, Object> map = new HashMap<String, Object>();
String status = null;
try {
System.out.println(name + "" + pass);
if (!Tools.isEmpty(name) && !Tools.isEmpty(pass)) {
User user = new User();
user.setName(name);
user.setPassword(pass);
List<User> list = userHander.getUserDAO().findByExample(user);
System.out.println(list.size());
if (list.size() > 0) {
status = "1";
map.put("users", list);
} else {
status = "null";
}
} else {
status = "0";
}
map.put("status", status);
ResultUtils.toJson(ServletActionContext.getResponse(), map);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

struts 配置如下

 <package name="default" extends="struts-default"  namespace="/">
<global-results>
<result name="error">/Error.jsp</result>
</global-results> <action name="userAction" class="userAction">
</action>
</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集合中 代码如下

 public String userToJson(){
Map<String, Object> map = new HashMap<String, Object>();
String status = null;
try {
System.out.println(name + "" + pass);
if (!Tools.isEmpty(name) && !Tools.isEmpty(pass)){
User user = new User();
user.setName(name);
user.setPassword(pass);
List<User> list = userHander.getUserDAO().findByExample(user);
System.out.println(list.size());
if (list.size() > 0) {
status = "1";
map.put("users", list);
} else {
status = "null";
}
} else {
status = "0";
}
map.put("status", status);
jsonResult=map;
return "success";
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

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>

通过浏览器访问返回的数据如下 

源码下载地址 http://download.csdn.net/detail/zyw_java/7101821

SSH返回Json格式的数据的更多相关文章

  1. WebAPI搭建(二) 让WebAPI 返回JSON格式的数据

    在RestFul风格盛行的年代,对接接口大多数人会选择使用JSON,XML和JSON的对比传送(http://blog.csdn.net/liaomin416100569/article/detail ...

  2. 人人商城返回Json格式的数据

    人人商城返回Json格式的数据 1.找到该插件对应的 core/mobile 路径 2.新建一个 api.php 文件 <?php header('Content-Type:applicatio ...

  3. 3.自定义返回json格式的数据给前台(自定义Controller类中的Json方法)

    在mvc的项目中,我们前台做一些操作时,后台要返回一些结果给前台,这个时候我们就需要有一个状态来标识到底是什么类型的错误, 例如: 执行删除的时候,如果操作成功(1行受影响),我们需要返回状态为1并输 ...

  4. asp.net MVC控制器中返回JSON格式的数据时提示下载

    Asp.net mvc在接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如下: 视图中js代码: $("# ...

  5. 在IE中MVC控制器中返回JSON格式的数据时提示下载

    最近做项目时,视图中用jquery.form.js异步提交表单时,接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如 ...

  6. PHP如何返回json格式的数据

    我们常见一些网站在做ajax时返回JSON格式的数据: 返回的是json格式的数据 这有什么好处那?很显然前端在接到返回的数据时可以直接使用,而不用再用eval('(+ returnString +) ...

  7. java 返回json格式的数据

    1 阿里巴巴的fastjson import com.alibaba.fastjson.JSON; 使用的时候 JSON.toJSON(list); 2  Gson 解析json数据 import c ...

  8. ModelAndView返回Json格式的数据

    第一种方式: 1.自定义类JacksonUtil.java,类中实现tojson方法(即将数据转成json类型): 2.自定义类JsonView 继承 AbstractView 3.xml中配置bea ...

  9. 解决在IE中返回JSON格式的数据时提示下载的问题

    如题,以ASP.NET MVC为例,解决办法如下: 控制器中: public JsonResult Test() { return Json(json, "text/html"); ...

随机推荐

  1. HBase安装inAction

    在安装Hbase之前,需要有hadoop的运行环境,关于hadoop的安装过程,请查看我之前的blog:hadoop安装笔记:或者另一个博主的超详细文章http://weixiaolu.iteye.c ...

  2. iOS - instancetype

    OC是一门正在迅速发展的语言,ARC,object literals ,subscripting ,blocks,Auto Synthesis,让我们看到它惊人的改变.instancetype是cla ...

  3. JS单元测试框架:QUnit

    QUnit:jQuery的单元测试框架,但不仅限于jQuery(从这个工具不需要引用jquery.js可以看出) index.html <!-- 官网 http://qunitjs.com/ - ...

  4. Uva 1354 Mobile Computing

    题目链接 题意: 在一个宽为r 的房间里, 有s个砝码, 每个天平的一端要么挂砝码, 要么挂另一个天平, 并且每个天平要保持平衡. 求使得所有砝码都放在天平上, 且总宽度不超过房间宽度的最大值. 思路 ...

  5. 在 Visual Studio 2010 中创建 ASP.Net Web Service

    第一步:创建一个“ASP.Net Empty Web Application”项目 第二步:在项目中添加“Web Service”新项目 第一步之后,Visual Studio 2010会创建一个仅含 ...

  6. 计算机中的大小端模式及C语言中如何鉴别他们

    我的博客:www.while0.com 参考http://blog.csdn.net/ce123_zhouwei/article/details/6971544 写的很详细. 大小端主要是对数字类型来 ...

  7. usaco3.33Camelot(BFS)

    恶心的题啊 .. 先枚举哪个点是所有人集合的点 再枚举所有骑士遇见国王的点 如果全部枚举出来会大大的TLE 经大牛验证 只需要枚举国王周围的点就可以了+-2 之内 然后各种繁琐 各种错误 骑士有可能不 ...

  8. POJ_3616_Milking_Time_(动态规划)

    描述 http://poj.org/problem?id=3616 给奶牛挤奶,共m次可以挤,给出每次开始挤奶的时间st,结束挤奶的时间ed,还有挤奶的量ef,每次挤完奶要休息r时间,问最大挤奶量. ...

  9. maven install 跳过 测试 test

    你可能想要配置 Maven 使其完全跳过单元测试. 可能你有一个很大的系统,单元测试需要花好多分钟来完成,而你不想在生成最终输出前等单元测试完成. 你可能正工作在一个遗留系统上面,这个系统有一系列的失 ...

  10. response常见应用、response细节、输出随机图片、定时刷新网页

      response常见应用 向客户端输出中文数据 分别以OutputStream和PrintWriter输出 多学一招:使用HTML语言里面的<meta>标签来控制浏览器行为 思考:用O ...