비즈니스는 업데이트 작업을 위해 프론트엔드 jQuery easyUI DataGrid 목록에서 선택된 여러 행의 데이터를 백그라운드로 전송해야 합니다.
일반적으로 우리는 다음을 통해 선택된 행 객체의 ID를 얻습니다. 루프 그리고 간단히 긴 문자열로 캡슐화하여 서비스 계층으로 보낸 다음 findByID를 사용하여 인스턴스를 가져와 업데이트합니다
하지만 이번에는 전체 객체 그룹을 백그라운드로 완전히 전송해야 합니다
구조는 다음과 같습니다
Google의 GSON 플러그인과 json2.js를 함께 사용합니다
프론트엔드 코드는 다음과 같습니다. 몇 가지 간단합니다. 단순화를 위해 인증 코드가 제거되었습니다.
varrows = $('#dg1').datagrid('getSelections');
$.ajax({
cache : false,
type : "POST",
url : _basePath '/sectionGroup/pair',
data : {rows : JSON.stringify(rows ), group_id : group_id, group_name : group_name},
success : function(data) {
if(data.success = = true){
$.messager.confirm('구성 성공','목록을 새로 고칠지 여부', function(r){
if (r){
$('#dg'). datagrid('reload');
$('#dg1').datagrid(' reload')
$('#dg2').datagrid('reload')
}
});
}else{
$.messager.show({
title:'Prompt',msg:'구성 실패',
showType:'fade',style:{right:' ',bottom:''}
});
}
}
})
이 페이지에는 json2.js가 필요합니다
백그라운드 컨트롤러는 다음을 받습니다.
@ RequestMapping(value = "/pair")
@ResponseBody
public ResponseData pair(String 행, String group_name , String group_id, HttpServletRequest request) {
User user = (User) SecurityContextUtil.getCurrentUser(); 🎜>if (user == null) {
user = (User) request.getSession().getAttribute( Constants.USER_OS)
}
Gson gson = new Gson()
List< ;SectionGroup> list = gson.fromJson(rows, new TypeToken>() {}.getType ())
for (SectionGroup sectionGroup : list) {
sectionGroup.setRegion(user. getRegion_id());
sectionGroup.setCompany_id(user.getOrg_id());
sectionGroup.setGroup_id(group_id)
service.insertEntity(sectionGroup); 🎜>}
return ResponseData.SUCCESS_NO_DATA;
}
여기서 GSON 및 TypeToken은 GSON 패키지에 도입된 클래스입니다.
입력 매개변수 행은 문자열이어야 합니다. type
Gson 변환 후에도 List는 여전히 일반 인터페이스이며 프런트 엔드의 전체 Object 객체가 내부적으로 로드됩니다.