Java Spring MVC控制器配置-混合注释和XML@PathVariable

Java Spring MVC控制器配置-混合注释和XML@PathVariable,java,configuration,spring-mvc,annotations,Java,Configuration,Spring Mvc,Annotations,我正在使用SpringMVC框架(v3)开发一个web应用程序 目前我已经定义了几个控制器类-我通过扩展MultiActionController创建了它们,然后在我的web mvc XML配置中定义了bean和URL映射: QuestionController.java: public class QuestionController extends MultiActionController implements InitializingBean { @RequestMapping("/

我正在使用SpringMVC框架(v3)开发一个web应用程序

目前我已经定义了几个控制器类-我通过扩展MultiActionController创建了它们,然后在我的web mvc XML配置中定义了bean和URL映射:

QuestionController.java:

public class QuestionController extends MultiActionController implements InitializingBean 
{
@RequestMapping("/detail/{questionId}")
public ModelAndView detail(@PathVariable("questionId") long questionId, HttpServletRequest request, HttpServletResponse response) throws Exception{
webmvc-config.XML

<bean id="questionController" class="com.tmm.enterprise.microblog.controller.QuestionController"></bean>
...
    <bean id="fullHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="alwaysUseFullPath" value="true" />
        <property name="mappings">
            <props>
                <prop key="/question/**">questionController</prop>
            </props>
        </property>
    </bean>  
但是,当我运行上述操作并获取以下信息时,我会收到一个错误:

@RequestMapping


以前有人见过这个吗?将
RequestMapping
注释与现有的XML配置的URL映射混合使用可以吗?

这是来自DefaultAnnotationHandlerMapping类的注释,如果我正确阅读注释,如果您在QuestionController.java顶部添加@RequestMapping,可能会解决您的问题

带注释的控制器通常用{@link Controller}原型标记 在类型级别。当{@link RequestMapping}为 应用于类型级别(因为这样的处理程序通常实现 {@link org.springframework.web.servlet.mvc.Controller}接口)。然而, 检测{@link RequestMapping}批注需要{@link Controller} 如果{@link RequestMapping}在类型级别不存在,则在方法级别

编辑

您可以这样做,将uri的/question部分移到顶部,并保留 方法级别的详细信息部分

@RequestMapping("/question")
public class QuestionController
{
  @RequestMapping("/detail/{questionId}")
  public ModelAndView detail(@PathVariable("questionId") long questionId,    HttpServletRequest request, HttpServletResponse response) throws Exception{

}

你是说你正在尝试将
@RequestMapping
添加到
多操作控制器
?我只是想说将uri的一部分移到顶部,而不是细节。我编辑了答案以反映这一点。完美-将@RequestMapping添加到类中完成了任务,谢谢!