Spring MVC Аннотация Относительная ошибка пути - PullRequest
0 голосов
/ 10 июля 2010

Я пытаюсь преобразовать мое приложение, написанное на Spring MVC 2.5, для использования аннотированного стиля контроллера.

По-видимому, я не могу добиться успеха.

У меня есть отображение, как показано ниже:

<li><a href="eqr/eqrItemList.htm"><span>Equipment Qual Report</span></a></li>

Я создал свой контроллер, как показано ниже:

@Controller
@RequestMapping("/eqr")
public class EQRMainController {
 private SimpleEQRTransManager eqrManager;
 protected final Log logger = LogFactory.getLog(getClass());

 @RequestMapping(value = "/eqrItemList.htm")
 public String setupForm(
   @RequestParam(value = "plant", required = false) String plant,
  return "eqrmain";
 }
}

Я хотел использовать относительный путь, поэтому я установил сопоставление моего запроса на уровне типа класса. Но, очевидно, я получаю 404 не найден и ошибка отображения обработчика не найден на консоли tomcat.

Там написано:

Не найдено сопоставление для HTTP-запроса с URI [/myapp/eqr/eqrItemList.htm]

Я смотрю на консоль Firebug, и она запрашивает следующий путь:

http://localhost:8080/myapp/eqr/eqrItemList.htm

Я не знаю, почему не удается найти отображение.

Ответы [ 2 ]

1 голос
/ 10 июля 2010

Вы уверены, что правильно настроили контекст для аннотаций?

В конфигурации контекста MVC (обычно называемой dispatcher-servlet.xml, в зависимости от имени вашего сервлета) вы можете настроить поддержку аннотаций MVC, используя этот элемент:

<mvc:annotation-driven />

Это самый простой способ сообщить Spring, что вы собираетесь использовать аннотации MVC. Вот фрагмент из одного из моих проектов, чтобы поместить его в контекст:

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

<!-- Import my service beans -->
<import resource="application-context.xml" />

<mvc:annotation-driven />
<context:component-scan base-package="my.controllers.package.here" />

<!-- Other beans go here -->

Тщательное ; это Spring 3, поэтому он может не полностью подать заявку на 2.5. Проверьте справочную документацию (это объясняет это довольно подробно).

0 голосов
/ 10 июля 2010

Проверьте ваше отображение сервлета в web.xml:

     <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
     </servlet-mapping>

Если шаблон URL исправляет только некоторые специальные расширения (например, *. Do в этомпример), тогда ваш сервлет никогда не получит этот запрос.

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