问题描述:
假设有两个url:
1.localhost/test/a?s=1 get请求 返回一个json对象
2.localhost/test/a get请求 返回一个字符串
解决方法:
一开始遇到这个问题,我是这样解决的
@RequestMapping(value="/a",method = RequestMethod.GET) public Object clearCart(HttpServletRequest request,String a){ //如果要返回字符串 就返回字符串
//如果要返回Json对象就 手动转字符串返回
return "index"; }
但是这样写后 我发现并不行。因为返回的数据格式不相同,所以必须要分为两个方法,集成为一个方法行不通,但是分为两个方法的话,@requestMapping又是按照value,和method区别url的,就是如果两个url的请求方式相同,value也相同的话,如果不加其他限制条件,是没有办法分成两个方法的,都会默认进入第一个方法。所以对于这个问题,我运用了 RequestMapping的params参数 修改如下:
@RequestMapping(value="/a",method = RequestMethod.GET,params ="s") public bean clearCart(HttpServletRequest request){ return 对象 }@RequestMapping(value="/a",method = RequestMethod.GET) public String clearCart(HttpServletRequest request){ return 页面 }这样完美解决问题,带参数s的进入第一个方法,不带参数s的进入第二个方法。具体params 参数怎么使用,我就不闲扯那么多了,百度一下你就知道。