Spring AnnotationHandlerMapping не работает - PullRequest
1 голос
/ 28 августа 2009

Я новичок в пружинных контроллерах, использующих аннотированные контроллеры.

Вот моя конфигурация

Определение бина

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

Контроллер

package learn.web.controller.annotation;

import javax.servlet.http.HttpServletRequest;

import learn.web.controller.BaseController;

import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class FirstController extends BaseController {

    @RequestMapping("/annotation/first.ftl")
    public ModelAndView first(HttpServletRequest request) {

        if(messageSource  instanceof ReloadableResourceBundleMessageSource){
            ReloadableResourceBundleMessageSource m = (ReloadableResourceBundleMessageSource) messageSource;
            m.clearCache();
        }

        messageSource.getMessage("learn.message.first", new Object[] {},
                localResolver.resolveLocale(request));

        return new ModelAndView("/annotation/first");
    }

}

При попытке доступа к указанному URL-адресу Spring выдает предупреждение org.springframework.web.servlet.PageNotFound - Не найдено сопоставление для HTTP-запроса с URI [/Learn/annotation/first.ftl] в DispatcherServlet с именем «springapp»

1 Ответ

0 голосов
/ 28 августа 2009

Я думаю, что вам не хватает компонента сканирования

<context:component-scan base-package="learn.web.controller" />

Добавьте это в свою конфигурацию и попробуйте.

Это загрузит все аннотированные компоненты из указанного пакета

Ваша конфигурация может выглядеть следующим образом

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-2.5.xsd">

    <context:component-scan base-package="learn.web.controller" />
    <bean
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />

</beans>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...