您的位置:首页 > 编程语言 > Java开发

javabean中属性包含对象数组的接收方式

2017-05-10 00:00 344 查看

1.javabean关键属性如下:

public class Notice extends Model {
/**
*
*/
private static final long serialVersionUID = -7780209130216322167L;

/**
* 在地图上打点所构成的对象数组
*/
private NoticePoint[] noticePoints;

public NoticePoint[] getNoticePoints() {
return noticePoints;
}

public void setNoticePoints(NoticePoint[] noticePoints) {
this.noticePoints = noticePoints;
}

}


2.控制层直接通过对象接收

@RestController
@RequestMapping("/notice")
public class NoticeController extends BasicController {

@Resource
private NoticeServiceI noticeService;

/**
* 功能描述:新增紧急通知
* 作者:温海金
* 最后更改时间 : 2017年4月18日 下午4:28:10
*/
@PostMapping(value = "/add")
public Json add(@RequestBody @Valid Notice notice, HttpSession session) {
SysUser user = (SysUser)session.getAttribute(SysGlobalConstants.USER_SESSION_KEY);
return setSimpleSuccess(noticeService.insertAndPublishNotice(notice, user));
}

}

注意:在对象前面添加注解@RequestBody

3.前端ajax请求写法

var noticePointsArr=[];

//鼠标点击,获取经纬度坐标
function getLnglat(e) {
var x = e.lnglat.getLng();
var y = e.lnglat.getLat();
if (openOrlock ) {

addMarkerforMap(x,y);
getPotion(x,y);

}
var NoticePoint = new Object();
NoticePoint.latitude=x;
NoticePoint.longitude=y;
noticePointsArr.push(NoticePoint)
}

//通知记录新增页面表单提交
function commitNoticeRecordAdd(){

var acontent_val=$("#acontent").val();
var anoticeRange_val=$('#anoticeRange').combobox('getValue');
var aimportantGrade_val=$('#aimportantGrade').combobox('getValue');
var arange_val=$('#arange').combobox('getValue');
var LinesName_val=$('#LinesName').val();

var params={
content:acontent_val,
noticeRange:anoticeRange_val,
importantGrade:aimportantGrade_val,
distanceRange:arange_val,
routeStr:LinesName_val,
noticePoints:noticePointsArr,
}
$.ajax({
url : baseContextPath+'/notice/add',
cache : false,
type : 'post',
data:JSON.stringify(params),
contentType: "application/json; charset=utf-8",
dataType : 'json',
success : function(r) {
if (r.success) {
$.messager.alert('系统提示','添加成功','info',function(){
$("#noticeRecordAddForm")[0].reset();
$('#girdNoticeRecord').datagrid("reload");
publicClose();
});
}
}
})

};

注意:在ajax提交时配置属性contentType: "application/json; charset=utf-8",告诉服务器我是以json的形式进行数据传递的

4.前端提交的数据格式如下



5.后台接收到的数据对象

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息