SSM前端表单向后台传送数组,后台的接收数据的方式

在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;
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值