版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25652949/article/details/81115725
开发框架:spring boot
在开发过程中前端填写的表单数据如何直接传给后台赋值给java实体对象?
原始方法是
String variable = request.getParameter("formName");
entity.setVariable(variable);
....
但是当表单项过多时,java代码一项一项这样写会很麻烦
所以可以在前端用Js将表单项数据一起封装为一个json格式的数据
html代码
<form id="form1">
<input type="text" id="rolename" name="rolename" />
<input type="text" id="remark" name="remark" />
<input type="button" onclick="javascript:a()" value="submit" ></input>
</form>
jquery代码:
function a(){
var form={};
var rolename = $("#rolename").val();
var remark = $("#remark").val();
form["rolename"]=rolename;
form["remark"]=remark;
console.log(JSON.stringify(form));
$.ajax({
enctype: "multipart/form-data",
type:'POST',
contentType: "application/json; charset=utf-8",
dataType:'json',
url:"/admin/test-t",
data:JSON.stringify(form),
success:function(result){
//。。。
}
});
}
java后台代码:
@RequestMapping(value="/admin/test-t",method = RequestMethod.POST,produces="application/json;charset=UTF-8",consumes="application/json;charset=UTF-8")
@ResponseBody
public JSONObject sss(@RequestBody RoleEntity entity){
System.out.println("roleName:"+entity.getRolename());
System.out.println("remark:"+entity.getRemark());
JSONObject jobj =(JSONObject) JSONObject.toJSON(entity);
return jobj;
}
consumes和produces一定要写
接收的参数直接是Java对象 前面添加@RequestBody注解
前端Js代码里Json数据的key名一定要和Java对象里的成员名相同,这样才能将Json数据直接赋值给java实体对象