时间:2010-07-25 01:49:39

标签: java spring spring-mvc url-routing default

4 个答案:

答案 0 :(得分:13)

答案 1 :(得分:5)

简短回答:我不知道如何使用简单标记简单地指定一个默认方法。

但是有这个......

我不知道在哪个版本的Spring中实现了这个版本,但您可以在3.1.2中向value提供多个@RequestMapping。所以我这样做:

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping(value = {"", "/", "/list"}, method = RequestMethod.GET)
    public String listUsers(ModelMap model) { }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public ModelAndView add(HttpServletRequest request, ModelMap model) { }

}

然后,以下网址会映射到listUsers()

答案 2 :(得分:0)

我会在那里创建一个没有RequestMapping值的默认方法。请参阅下面的方法 defaultCall()。然后,您只需使用URL调用它们:[yourhostname] / user

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping(method = RequestMethod.GET)
    public String defaultCall( MapModel model ) {
        //Call the default method directly, or use the 'forward' String. Example:
        return authenticate( model );
    }

    @RequestMapping("login")
    public String login( MapModel model ) {}

    @RequestMapping("logout")
    public String logout( MapModel model ) {}

    @RequestMapping("authenticate")
    public String authenticate( MapModel model ) {}
}

参考:Spring Framework Request Mapping

答案 3 :(得分:0)

只需在默认方法上使用@RequestMapping("**")即可。任何更具体的映射仍然应该接受他们的请求。我有时会使用此方法设置默认方法。目前使用的是Spring v4.3.8.RELEASE。