如果使用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对象中传递过来的参数就已经被赋值成功