【问题标题】:@RequestMapping does not work on methods when I have annotated the controller当我注释了控制器时,@RequestMapping 不适用于方法
【发布时间】:2013-03-30 14:33:50
【问题描述】:

我已经用请求映射对控制器进行了注释。我还用另一个请求映射注释了该方法,但是它似乎没有被映射。我正在使用 Spring 2.5。

@RequestMapping("/animals")
@Controller
public class AnimalController {
    @RequestMapping(value="/tiger")
    public void doSomething(...) {..}
}

这不应该给我路径 /animals/tiger 吗?我在上下文配置中有这些:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

我只得到一个异常说它没有被映射。

【问题讨论】:

  • 你添加@controller了吗?
  • @Karna 是的,忘记复制了。
  • 请在 Spring 初始化时检查日志,看看它是否解析了您的控制器并显示了 url。
  • @BhushanBhangale 我在哪里可以找到?
  • 您的应用程序是否配置为使用类似 log4j 的解决方案进行日志记录?如果是,则检查该日志。我相信此信息记录在 DEBUG 级别,因此您需要打开该级别。

标签: java spring jakarta-ee spring-mvc


【解决方案1】:

您需要在类定义上方添加@Controller 注解。但除此之外,您还需要指定请求的类型。例如是 POST 或 GET。示例如下:

@RequestMapping(value = "tiger", method = RequestMethod.GET)

另外,请注意字符串 'tiger' 之前不需要正斜杠。这是自动的。

【讨论】:

  • 注意我的评论的变化。
  • OP 不需要指定RequestMethod。就像现在一样,映射将处理任何 http 方法。
猜你喜欢
  • 1970-01-01
  • 2019-11-18
  • 2011-05-16
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 2012-02-27
相关资源
最近更新 更多