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 + "]";
	}
} 
最后:踩坑之路没有尽头 ,能学到东西就是好事,遇到问题不用急 找到问题根源,借助工具,慢慢解决就好了。 一定要在这条路上越走越远。
下一篇:
			            c++解决四位玫瑰数/四叶玫瑰数的判断 
			          
			        
