SSM前端表單向後臺傳送陣列,後臺的接收資料的方式
阿新 • • 發佈:2019-01-04
在springMVC中,controller中方法的引數是自動注入的,在使用註解的方式下,通常有:
@RequestParam: ·取querystring當中的引數
@PathVariable: 取 在@RequestMapping中定義的佔位符中的引數(/test/{id})
@RequestBody: 取request 這個訊息體 (可以組裝json物件)
在不使用註解的情況下,預設有一些物件可以自動注入如:
HttpServletRequest
HttpServletResponse
MultipartFile
MultipartRequest
除此之外不使用註解的情況下,也可以接受前臺傳入的querystring中的引數
1、JSON化引數:
前臺js傳送請求:
$.ajax({ type:"POST", url:"/item/getRequestArrayData", dataType:"json", contentType:"application/json", data:JSON.stringify(itemArray), success:function(data){ console.log(data); } });
JAVA後臺接收:
@RequestMapping(value="/getRequestArrayData") @ResponseBody public Map<String,Object> getRequestArrayData(@RequestBody List<Item> itemList){ for(Item item:itemList){ //列印接收到的資料 System.out.println(item.getId()+"----"+item.getItem_name()); } return null; }
2、使用HttpServletRequest 接收引數陣列
js傳送請求:
var imageUrlArr = [];
$.each($("input[name=imageUrlFlag]"),function(index,obj){
imageUrlArr.push($(obj).attr('id'));
});
data.field.imageUrl = imageUrlArr;
$.post(URL,data.field, function(result) {
if(result.status ==0){
Msg.ok(result.msg);
//關閉頁面
if(flagAdd=='add'){
tabUtil.tabDelete('posterThemeTableTab',-1);
}else{
tabUtil.tabDelete('posterThemeTableTab',data.field.themeId);
}
//頁面切換
tabUtil.tabChange('posterThemeTableTab',0);
//重新整理頁面
table.reload('posterThemeTab', {
url: baseUrl+'/postertheme/listPosterThemeByPage',
page: {
curr: 1 //重新從第 1 頁開始
}
});
}else{
Msg.fail(result.msg);
}
後臺接收:
@RequestMapping(value="addPosterTheme",method=RequestMethod.POST)
@ResponseBody
public ResponseVo addPosterTheme(ScreenPosterThemeDto screenPosterThemeDto,HttpServletRequest request) {
ResponseVo vo = new ResponseVo();
String [] imageUrls =request.getParameterValues("imageUrl[]");
//檢視新增的主題是否存在
//新增
try {
ScreenPosterThemeDto addPosterTheme = posterThemeService.addPosterTheme(screenPosterThemeDto);
List<ScreenPosterDto> list = new ArrayList<>();
for (String imageUrl: imageUrls) {
ScreenPosterDto screenPosterDto = new ScreenPosterDto();
screenPosterDto.setThemeId(addPosterTheme.getThemeId());
screenPosterDto.setImageUrl(PropertiesConstant.FDFS_DOMAIN+"/"+imageUrl);
list.add(screenPosterDto);
}
Integer res = posterService.addPosters(list);
if(res>0){
vo.setStatus(ResponseEnum.SUCCESS.getStatus());
vo.setMsg("新增成功");
}
} catch (Exception e) {
e.printStackTrace();
vo.setStatus(ResponseEnum.FAIL.getStatus());
vo.setMsg("新增失敗");
}
return vo;
}