超简易实用springMVC前端传json格式参数到controller,无需额外写参数类或者controller注解

时间:2024-10-12 14:23:49

超简易实用springMVC前端传json格式参数到controller,无需额外写参数类或者controller注解

  • 背景
  • 实现流程
  • 代码
  • 资源链接
  • 后记

背景

许久没有用springMVC,工作中的一个项目用到,需要实现一个前端传参的中转中心,网上查了下前端传json格式数据到service层,结果大部分都是需要写参数对应的参数对象实体类或者RequestParam或者直接传Map或者List参数,以上方法太过于局限,如果前端需要多传参数,或者修改结构,就要重新修改上面的代码,十分不适合本懒人,于是基于以往经验,我写了另外一个简易实现。

实现流程

  1. 前端通过ajax传参,使用方法,将json对象转为json字符串;
  2. 在service层中,新建一个数据处理controller,接收一个来自前端的字符串;
  3. 通过来将上一步的json字符串转为json对象,再传输给其他地方

代码

  1. 前端传参请求(jquery)
$.ajax({
	type: "post",
	url: "RequestAction_request.do",
	dataType: "json",
    data : {params:JSON.stringify({'username':'kvikon','title':'test json','param':[{'test1':'test1'},{'test2':'test2'}]})},
	success: function(data) {}
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. controller代码(springMVC)
@Controller
@Scope(value = "prototype")
@RequestMapping
public class RequestController  extends ControllerSupport{
	@Autowired
	private SPAResultMessage resultMessage;

	 @RequestMapping(value = "RequestAction_request.do", method = {RequestMethod.POST})
	 @ResponseBody
	public Object request(String params) {
		 JSONObject paramsObj = JSONObject.parseObject(params);
		// 返回到前端,格式是json
	    resultMsg.addParameter("result",paramsObj);
		// 此处封装过并且数据原路返回,按照自己项目实际情况操作即可,
		return resultMsg;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

资源链接


  1. /alibaba/fastjson

后记

这里只是实现了一个简易的前端json参数传输的方法,优点显而易见,前端可以传复杂的json结构数据,后端也不需要做太多繁琐的数据处理,简化了操作,也易于维护。当然如有错漏或者有更好的想法,欢迎大家提出来,谢谢!