json数据传输
2012-03-12 10:50
267 查看
Java代码:
UserAction.java:
protected transient HttpServletResponse response;
public String queryList(List<OppUser> list)
{
this.outJsonData(listTojson(list));
}
protected void outJsonData(Object object)
{
// 转换成json对象
JSONArray jsonObject = JSONArray.fromObject(object);
// 获得转换后的json字符串
String jsonStr = jsonObject.toString();
try
{
// 将查询结果展示到页面
this.writeJson(jsonStr, response);
}
catch (IOException e)
{
log.warn(e, "...");
}
}
protected void writeJson(String jsonStr, HttpServletResponse resp)
throws IOException
{
String fullContentType = "application/json;charset=UTF-8";
resp.setContentType(fullContentType);
resp.setHeader("Pragma", "No-cache");
resp.setHeader("Cache-Control", "no-cache");
resp.setDateHeader("Expires", 0);
PrintWriter pw = null;
try
{
pw = resp.getWriter();
pw.print(jsonStr);
}
finally
{
if (pw != null)
{
pw.close();
pw.flush();
resp.flushBuffer();
}
}
}
public List<OppUserJSON> listTojson(List<OppUser> list)
{
List<OppUserJSON> oppUserList = new ArrayList<OppUserJSON>();
// 账号信息对象
OppUser oppUser = new OppUser();
int listSize = list.size();
if (listSize > 0)
{
for (int i = 0; i < listSize; i++)
{
OppUserJSON oppUserJSON = new OppUserJSON();
oppUser = (OppUser) list.get(i);
oppUserJSON.setOppUser(oppUser);
oppUserJSON.setUserId(oppUser.getUserId());
oppUserJSON.setUserName(oppUser.getUserName());
oppUserJSON.setPageNum(2 + "");
oppUserJSON.setPageSize(10 + "");
oppUserList.add(oppUserJSON);
}
}
return oppUserList;
}
OppUserJSON.java:
private OppUser oppUser;
private String userId;
private String userName;
private String pageNum;
private String pageSize;
//省略set、get方法...
public String toString()
{
String line = System.getProperty("line.separator");
StringBuffer sb = new StringBuffer("");
sb.append('{');
sb.append(line);
sb.append("oppUser=").append(this.oppUser).append(line);
sb.append("userId=").append(this.userId).append(line);
sb.append("userName=").append(this.userName).append(line);
sb.append("pageNum=").append(this.pageNum).append(line);
sb.append("pageSize=").append(this.pageSize).append(line);
sb.append('}');
return sb.toString();
}
struts.xml:
<action name="queryList" class="userAction" method="queryList">
<result name="json"/>
</action>
js:
function queryList()
{
var param = "pageNum="+pageno;
$.ajax({
type:"post",
url:"queryList.action",
data:param,
dataType:"json",
beforeSend: function()
{
$("#accountListTable tr:not(:first)").hide();
},
success: function(json)
{
//加载数据
loadAccountInfo(json);
},
error: function()
{
popDialog.show("提示信息", "查询失败");
}
});
}
function loadAccountInfo(json)
{
if (json != null && json.length != 0)
{
//组织列表数据
for(var i=0; i<json.length; i++)
{
fillAccountTable(json[i]);
}
}
else
{
var tr = $("<tr></tr>");
var td = $("<td colspan='3'></td>");
td.addClass("tdInfo");
td.append("没有找到相关信息");
tr.append(td);
toneInfoTable.append(tr);
$("#pageHtml").hide();
}
}
function fillAccountTable(jsoni)
{
var cloneTr = $("#firstTr:first").clone(true);
$("#accountListTable").append(cloneTr);
cloneTr.show();
cloneTr.find("#userId").text(jsoni.userId);
cloneTr.find("#userName").text(jsoni.userName);
cloneTr.find("#userName").bind("click", function(){
var param = "id=" + jsoni.userId;
var url = 'xxx.action?subAction=accountmanager&' + param;
window.location.href = url;
});
}
UserAction.java:
protected transient HttpServletResponse response;
public String queryList(List<OppUser> list)
{
this.outJsonData(listTojson(list));
}
protected void outJsonData(Object object)
{
// 转换成json对象
JSONArray jsonObject = JSONArray.fromObject(object);
// 获得转换后的json字符串
String jsonStr = jsonObject.toString();
try
{
// 将查询结果展示到页面
this.writeJson(jsonStr, response);
}
catch (IOException e)
{
log.warn(e, "...");
}
}
protected void writeJson(String jsonStr, HttpServletResponse resp)
throws IOException
{
String fullContentType = "application/json;charset=UTF-8";
resp.setContentType(fullContentType);
resp.setHeader("Pragma", "No-cache");
resp.setHeader("Cache-Control", "no-cache");
resp.setDateHeader("Expires", 0);
PrintWriter pw = null;
try
{
pw = resp.getWriter();
pw.print(jsonStr);
}
finally
{
if (pw != null)
{
pw.close();
pw.flush();
resp.flushBuffer();
}
}
}
public List<OppUserJSON> listTojson(List<OppUser> list)
{
List<OppUserJSON> oppUserList = new ArrayList<OppUserJSON>();
// 账号信息对象
OppUser oppUser = new OppUser();
int listSize = list.size();
if (listSize > 0)
{
for (int i = 0; i < listSize; i++)
{
OppUserJSON oppUserJSON = new OppUserJSON();
oppUser = (OppUser) list.get(i);
oppUserJSON.setOppUser(oppUser);
oppUserJSON.setUserId(oppUser.getUserId());
oppUserJSON.setUserName(oppUser.getUserName());
oppUserJSON.setPageNum(2 + "");
oppUserJSON.setPageSize(10 + "");
oppUserList.add(oppUserJSON);
}
}
return oppUserList;
}
OppUserJSON.java:
private OppUser oppUser;
private String userId;
private String userName;
private String pageNum;
private String pageSize;
//省略set、get方法...
public String toString()
{
String line = System.getProperty("line.separator");
StringBuffer sb = new StringBuffer("");
sb.append('{');
sb.append(line);
sb.append("oppUser=").append(this.oppUser).append(line);
sb.append("userId=").append(this.userId).append(line);
sb.append("userName=").append(this.userName).append(line);
sb.append("pageNum=").append(this.pageNum).append(line);
sb.append("pageSize=").append(this.pageSize).append(line);
sb.append('}');
return sb.toString();
}
struts.xml:
<action name="queryList" class="userAction" method="queryList">
<result name="json"/>
</action>
js:
function queryList()
{
var param = "pageNum="+pageno;
$.ajax({
type:"post",
url:"queryList.action",
data:param,
dataType:"json",
beforeSend: function()
{
$("#accountListTable tr:not(:first)").hide();
},
success: function(json)
{
//加载数据
loadAccountInfo(json);
},
error: function()
{
popDialog.show("提示信息", "查询失败");
}
});
}
function loadAccountInfo(json)
{
if (json != null && json.length != 0)
{
//组织列表数据
for(var i=0; i<json.length; i++)
{
fillAccountTable(json[i]);
}
}
else
{
var tr = $("<tr></tr>");
var td = $("<td colspan='3'></td>");
td.addClass("tdInfo");
td.append("没有找到相关信息");
tr.append(td);
toneInfoTable.append(tr);
$("#pageHtml").hide();
}
}
function fillAccountTable(jsoni)
{
var cloneTr = $("#firstTr:first").clone(true);
$("#accountListTable").append(cloneTr);
cloneTr.show();
cloneTr.find("#userId").text(jsoni.userId);
cloneTr.find("#userName").text(jsoni.userName);
cloneTr.find("#userName").bind("click", function(){
var param = "id=" + jsoni.userId;
var url = 'xxx.action?subAction=accountmanager&' + param;
window.location.href = url;
});
}
相关文章推荐
- Android网络数据传输Json和Xml
- android 数据传输之JSON
- Wex5案例使用JSON传输Thinkphp后端对接,以达成数据正常输出
- Python3 网络传输数据的处理(json / xml / base64)
- springmvc中@ReuqestBody和@ResponseBody传输json数据
- 数据传输格式xml/json
- Apache页面压缩配置问题导致json数据传输时间延长
- ajax传输json数据 数据不全
- 掌握 Ajax,第 10 部分: 使用 JSON 进行数据传输
- 测试比json更快更小的二进制数据传输格式Msgpack [pythono MessagePack 版本] 推荐
- JavaScript - XMLHttpRequest 应用示例(传输二进制数据、JSON 字符串,监测进度)
- 南京学思利用Json进行数据传输
- json完成数据传输
- 5.QT中关于HTTPClient相关的操作,Json数据传输
- SSM框架下使用JSON和AJAX进行前后端数据传输
- SSM框架下使用JSON和AJAX进行前后端数据传输
- asp.net中 使用jquery+ashx 做ajax,json做数据传输
- jquery异步传输3种不同数据类型html、xml、json
- Java 在传输JSON数据时,数据被最后所赋值的内容覆盖
- 【转】Flex4:利用HttpService与ASP.NET传输JSON数据(登录为例)