Java 在SpringMVC3中使用pathvariable
我正在学习SpringMVC,并且偶然发现了路径变量的用法。根据书中给出的示例,我不清楚它是如何工作的,请帮助我理解这里的概念:Java 在SpringMVC3中使用pathvariable,java,spring-mvc,Java,Spring Mvc,我正在学习SpringMVC,并且偶然发现了路径变量的用法。根据书中给出的示例,我不清楚它是如何工作的,请帮助我理解这里的概念: @RequestMapping(method=RequestMethod.POST) public String addSpitterFromForm(@Valid Spitter spitter, BindingResult bindingResult) { if(bindingResult.hasErrors()){ return"spitte
@RequestMapping(method=RequestMethod.POST)
public String addSpitterFromForm(@Valid Spitter spitter, BindingResult bindingResult) {
if(bindingResult.hasErrors()){
return"spitters/edit";
}
spitterService.saveSpitter(spitter);
return "redirect:/spitters/" + spitter.getUsername();
}
至于它重定向到的路径,它将采用/spitters/{username}
的形式,其中{username}
表示刚刚提交的Spitter的用户名。例如,如果用户以habuma的名义注册,则在提交表单后,他们将被重定向到/spitters/habuma
在上面的语句中,它表示请求被重定向到/spitters/habuma
,其中habuma
是用户名
@RequestMapping(value="/{username}",method=RequestMethod.GET)
public String showSpitterProfile(@PathVariable String username, Model model){
model.addAttribute(spitterService.getSpitter(username));
return "spitters/view";
}
例如,如果请求路径为/username/habuma
,则habuma
将被传递到用户名的showspiterprofile()
这里它说showspiterprofile()
方法处理/username/habuma
请求,这与前面提到的语句相矛盾
看起来第一句话本身是正确的,但是,请告诉我showspiterprofile方法是否同时处理URL,即
/splitters/habuma
和/username/habuma
或/splitters/username/habuma
?/username
如果类级别上的@RequestMapping
没有显示/username
路径组件只有@RequestMapping(“/spitter”)
。这本书可能有打字错误。正确的句子是:
例如,如果请求路径为/spitter/habuma,则habuma将被传递到用户名的showspiterprofile()