【发布时间】:2010-12-21 03:32:44
【问题描述】:
使用基于注解的控制器映射。
@Controller
public class AlertsController {
@RequestMapping(value="create", method=RequestMethod.GET)
public void create(HttpServletRequest request, Model model) {
}
}
访问alerts/create 时,我收到消息Does your handler implement a supported interface like Controller?。这似乎很奇怪,与文档所说的相反。
所以,我在课程中添加了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) {
}
}
这很奇怪,而且非常不方便。任何人都有办法解决这个问题,甚至调试发生了什么?
【问题讨论】:
标签: java model-view-controller spring annotations