超简易实用springMVC前端传json格式参数到controller,无需额外写参数类或者controller注解
- 背景
- 实现流程
- 代码
- 资源链接
- 后记
背景
许久没有用springMVC,工作中的一个项目用到,需要实现一个前端传参的中转中心,网上查了下前端传json格式数据到service层,结果大部分都是需要写参数对应的参数对象实体类或者RequestParam或者直接传Map或者List参数,以上方法太过于局限,如果前端需要多传参数,或者修改结构,就要重新修改上面的代码,十分不适合本懒人,于是基于以往经验,我写了另外一个简易实现。
实现流程
- 前端通过ajax传参,使用方法,将json对象转为json字符串;
- 在service层中,新建一个数据处理controller,接收一个来自前端的字符串;
- 通过来将上一步的json字符串转为json对象,再传输给其他地方
代码
- 前端传参请求(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
- 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
资源链接
/alibaba/fastjson
后记
这里只是实现了一个简易的前端json参数传输的方法,优点显而易见,前端可以传复杂的json结构数据,后端也不需要做太多繁琐的数据处理,简化了操作,也易于维护。当然如有错漏或者有更好的想法,欢迎大家提出来,谢谢!