json 新用

来源:互联网 发布:知乎个性域名是什么 编辑:程序博客网 时间:2024/06/06 18:19

如果使用struts2的action,可以省去属性赋值的工夫。

但是假如你没有使用struts2,而且使用的是ajax请求,通过json来传递参数。那我下面所说的对你可能是一个很好的解脱,从此告别request.getParamter。

在传递参数前,可以通过JSON.encode将参数对象转换为字符串param,作为一个参数传递过去。在服务端,通过获取一个字符串的参数param,通过JsonObject.fromObject,将param转换为java对象。这样就不用一个一个的给javabean属性赋值,如果传递了多个参数,使用此方法可以事半功倍!如果需求变更参数增删改查毫无压力。只要json的属性和javabean的属性对应起来,参数赋值不再关心!


使用示例:

js代码:

/* * 进行数据请求 */function ajaxBusinessInfos(curPage, perNum) {// 参数设置var param = {};if (curPage && perNum) {param.curPage = curPage;param.perNum = perNum;} else {param.curPage = 1;param.perNum = 10;}param.id = $('#businessId').val();param.name = $('#businessName').val();param.recordNodeName = $('#recordNodeName').val();param.nodeType = $('#businessNodeType').combobox('getValue');param.businessType = $('#businessType').combobox('getValue');param.startDate = $('#businessStartDate').datebox('getValue') ;param.endDate = $('#businessEndDate').datebox('getValue');$('#businessmaskdiv').mask({maskMsg : "数据加载中。。。"});
paramStr = JSON.encode(param);var jqxhr = $.post('test.jsp',paramStr, function(data) { // 请求成功}).error(function(data, status) { // 请求失败}).complete(function(data, status) { // 请求完成$('#businessmaskdiv').mask('hide');});}
//test.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>String paramStr = request.getParameter("paramStr");Bean b = JsonObject.fromObject(paramStr);//b 中对应的在json对象中传递过来的参数就已经被赋值成功