我有两个要映射的网址:
root:http://www.website.com
:当用户请求root时我想显示主页。
带参数的根:http://www.website.com?ref=xxxx
:当用户请求时,我想创建一个cookie并转到root(" /")。
这是我的控制器:
@RequestMapping(value="/",method=RequestMethod.GET)
public String doGreatThings(
@RequestParam(value="ref", required=false) String identifier,
ServletRequest request,
ServletResponse response){
if(identifier!=null){
}
return "/";
}
这给了我一个无限循环。是否可以区分控制器中的两个映射?
http://www.mywebsite.com
VS
http://www.mywebsite.com?ref=xxxxx
答案 0 :(得分:2)
以前的一些评论中链接的answer是要走的路。
您应该使用params
的{{1}}属性按param过滤,但请注意您也可以否定此过滤器,因此请映射到不包含参数的网址。以下应该是适合您的映射
没有参数的映射请注意标记否定的@RequestMapping
!
使用参数
的映射@RequestMapping(value="/",method=RequestMethod.GET, params="!ref")
public ModelAndView doGreatThings(
@RequestParam(value="ref", required=false) String identifier,
ServletRequest request,
ServletResponse response){
// show home page
}
答案 1 :(得分:0)
我根据@kryger评论编辑了我的答案,您可以使用params
属性按参数进行过滤。
请检查此link以获取原始答案。