Ajax向后台传多个对象和数组

吐槽:当时我是真的气的想砸电脑 ,起初怎么调试都不过,400和415 我这辈子都不想在看到。 

   好  废话不多说  上代码:

前端ajax提交:

function save() {
			var foolTitle = $("#foolTitle").val();
			var foolMakeTime =$("#foolMakeTime").val();
			var foolPrice =$("#foolPrice").val();
			var foolShopId= $("#foolShopId").val();
			var fm = {foolTitle:foolTitle,foolMakeTime:foolMakeTime,foolPrice:foolPrice,foolShopId:foolShopId};
			alert(JSON.stringify({"foolSeas":foolSeas,"fm":fm}));
			  if(checkFormInfo() && foolTitleIsOK ){
				$.ajax({
		            url:projectName+'/user/addFoolMenuLibrary',
		            type:'POST',
                    //请求头一定要加,不加直接进不了后台的接口中去
		            contentType:"application/json;charset=utf-8",
                    //备注:fm是提前封装好的对象,foolSeas是数组。
				    data:JSON.stringify({"foolSeas":foolSeas,"foolLibraryMenu":fm}),
		            success:function(result) {
		            	alert("success");
		            	formRestInfo("#menuForm");
		            	$("#foolSeasData").empty();
		            	top.Dialog.close();
		            },error:function(){
                            alert("error");
			        }
		        })
			} 
}

后台接收:我是用一个包含了所有数据的pojo对象进行接收,接收对象需添加@RequestBody注解,通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上

@RequestMapping(value = "addFoolMenuLibrary", method = RequestMethod.POST)
	public ResponseEntity<Void> addFoolMenu(@RequestBody(required = true) FoolMenuAllInfo fm, HttpSession session) {
		try {

			User user = (User) session.getAttribute(Const.SESSION_USER);
			FoolLibraryMenu flm = fm.getFoolLibraryMenu();
			// 如果为0说明是 后台添加
			if (flm.getFoolShopId() == 0) {
				flm.setFoolShopId(null);
				flm.setFoolAddUserId("admin");
			} else {
				flm.setFoolIsShop(Integer.parseInt(user.getUSER_ID()));
				flm.setFoolAddUserId(user.getUSERNAME());
			}
			this.foolLibraryMenuService.saveSelective(flm);
			FoolLibraryMenu f = this.foolLibraryMenuService.queryOne(flm);
			this.foolSeasService.saveAll(fm.getFoolSeas());
			// 查看
			return ResponseEntity.status(HttpStatus.CREATED).build();
		} catch (Exception e) {
			e.printStackTrace();
		}
		// 出错500
		return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
	}

bean类:

import java.util.List;

public class FoolMenuAllInfo {

	private FoolLibraryMenu foolLibraryMenu; 
	private List<FoolSeas> foolSeas;// 前端传过来的数组会封装成list对象

	public FoolLibraryMenu getFoolLibraryMenu() {
		return foolLibraryMenu;
	}

	public void setFoolLibraryMenu(FoolLibraryMenu foolLibraryMenu) {
		this.foolLibraryMenu = foolLibraryMenu;
	}

	public List<FoolSeas> getFoolSeas() {
		return foolSeas;
	}

	public void setFoolSeas(List<FoolSeas> foolSeas) {
		this.foolSeas = foolSeas;
	}

	@Override
	public String toString() {
		return "FoolMenuAllInfo [foolLibraryMenu=" + foolLibraryMenu + ", foolSeas=" + foolSeas + "]";
	}

}

 最后:踩坑之路没有尽头 ,能学到东西就是好事,遇到问题不用急  找到问题根源,借助工具,慢慢解决就好了。 一定要在这条路上越走越远。

猜你喜欢

转载自blog.csdn.net/loveer0/article/details/81364524