使用基于注解的控制器映射。
当访问
因此,我在类中添加了一个
@Controller
public class AlertsController {
@RequestMapping(value="create", method=RequestMethod.GET)
public void create(HttpServletRequest request, Model model) {
}
}
当访问
alerts/create
时,我收到消息 你的处理程序是否实现了像控制器这样的受支持接口?
这似乎很奇怪,并且与文档所说的相反。因此,我在类中添加了一个
RequestMapping
:@Controller
@RequestMapping("/alerts")
public class AlertsController {
@RequestMapping(value="create", method=RequestMethod.GET)
public void create(HttpServletRequest request, Model model) {
}
}
这样做是可以的。虽然我不应该需要使用@RequestMapping
,但我确实需要它。现在,情况变得有些奇怪。我真正想要将其映射到“/profile/alerts”,所以我将其更改为:
@Controller
@RequestMapping("/profile/alerts")
public class AlertsController {
@RequestMapping(value="create", method=RequestMethod.GET)
public void create(HttpServletRequest request, Model model) {
}
}
当我访问profile/alerts/create
时,出现了404错误,但是由于某种原因它仍然被映射到/alerts/create
!?!?!
我将其更改为:
@Controller
@RequestMapping("foobar")
public class AlertsController {
@RequestMapping(value="create", method=RequestMethod.GET)
public void create(HttpServletRequest request, Model model) {
}
}
这很奇怪,也非常不方便。有没有办法来解决这个问题,或者甚至调试一下是怎么回事?
@RequestMapping
注释是类级别注释的细化;但事实似乎并非如此。 - davetron5000