@RequestMapping的params参数

@RequestMapping的params参数还是挺好用的。 
我的需求是这样的,现在有两个列表页面,一个是全部用户的列表页面,一个是某一个用户的列表页面,但是他们的jsp页面是一样的,url路径我也想一样的,单一用户的列表页面我想通过传入用户名来区别。 
 
但是springmvc不能多个方法匹配一个url。 
@RequestMapping的params参数就很好的就解决了这个问题。 
同一个url,只要params不同,sringmvc是会区分匹配的。 
示例我的项目中的一段代码: 
 
Java代码  
@RequestMapping(value = "/list",method=RequestMethod.GET)  
        public String getAll(Model model) {  
            Set<GroupSecure> secures= redisDao.get();  
            model.addAttribute("secures", secures);  
            return "group/list";  
        }  
          
        @RequestMapping(value = "/list",method=RequestMethod.GET,params="method=one")  
        public String getOneUser(@RequestParam(value ="name") String name,Model model) {  
            Set<GroupSecure> secures=redisDao.getByName(name);  
            model.addAttribute("secures", secures);  
            return "group/list";  
        }  
 
--------------------------------------------------------------
@RequestParam(value ="name") 加个required=false,这两个就可以合并到一起了 
 
你想合并到一起,其实可以参考我的 
[url]https://github.com/zhangkaitao/es/blob/master/web/src/main/java/com/sishuok/es/sys/user/web/controller/UserController.java[/url] 
 
如,使用一个查询对象封装所有数据 
@RequestMapping(value = {""}, method = RequestMethod.GET) 
    @PageableDefaults(sort = "id=desc") 
    @SearchableDefaults(value = "deleted_eq=0") 
    public String listAll(Searchable searchable, Model model) { 
        return list(null, null, searchable, model); 
    } 
 
 
不过如rest风格的带Path variable的不好办。。 只能写多个方法
 
原文地址:https://www.cnblogs.com/huapox/p/3516113.html