jQuery 传递对象参数到Spring Controller
当jQuery 发送ajax请求需要传递多个参数时,如果参数过多,Controller接收参数时就需要定义多个参数,这样接口方法会比较长,也不方便。Spring可以传递对象参数,将你需要的所有查询条件定义成对象的属性,前台给对象赋值,后台Controller接收时只需要接收对象参数即可,这样代码就变得非常简洁。以下是示例代码:
1、对象参数QueryBean
就是普通的java类,定义你需要的属性,生产getter、setter方法即可。例如我查询时需要传递用户名称name、用户密码password,那么我的类:Class User{private String name;private String password;getter....setter....}
2、前台jsp页面jQuery发送请求如何传入对象参数userEntity。要注意data里是JSON格式字符串,属性与对象参数User里的属性名称完全一致。
$.ajax({
type : "post",
url :"${pageContext.request.contextPath }/customerController/queryMedicalRecords",
data :{name:'这里是你需要传递的用户名称值',password:'你输入的密码’},
dataType : "json",
success : function(res) {
}
});
3、后台Spring Controller 接收参数方法。方法中定义一个对象参数User对象即可,对象名称随便写。这样前台的参数在方法里可以直接通过userEntity.get...方法来拿到。接口里只有request、response、userEntity三个参数,非常干净整洁。如果不是用这样的方法的话,那么就需要定义成这样:public void queryMedicalRecords( HttpServletRequest request, HttpServletResponse response,String name,String password)。这样看起来就很冗余了。
public void queryMedicalRecords( HttpServletRequest request, HttpServletResponse response,User userEntity) throws IOException {.....}