您的位置:首页 > Web前端 > JavaScript

SSH返回Json格式的数据

2015-06-08 17:25 633 查看
在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是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)



[b]第一种方法是使用Struts配置实现 将对象转化为Json字符串 主要的代码如下[/b]

[b]1、private Map<String, Object> jsonResult; 将声明的对象封装生成get和set方法[/b]

[b]2、封装查询的数据到Map集合中 代码如下[/b]

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: