Мое приложение использует Spring MVC (последняя версия 3.2.2) для создания RESTful API, возвращающего JSON, и до сих пор мне не нужен слой представления вообще. Но теперь, помимо API, мне нужна простая страница утилиты (простой динамический HTML) и вы хотите использовать JSP для этого.Как получить тривиальный случай Spring MVC view (JSP), разрешающий работать?
Я хочу, чтобы запросы http://localhost:8080/foo/<id>
проходили через контроллер (Java) и заканчивались в JSP. Должно быть просто, не так ли? Но я получаю 404; что-то не так в разрешении взгляда.
HTTP ERROR 404
Problem accessing /jsp/foo.jsp. Reason:
Not Found
Контроллер:
@RequestMapping(value = "/foo/{id}")
public String testing(@PathVariable String id, ModelMap model) {
model.addAttribute("id", id);
return "foo";
}
Определение контроллеров и запросов отображения работ; этот метод называется просто прекрасным.
Spring конфигурации:
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/jsp/" p:suffix=".jsp"/>
Проблема, вероятно, здесь. Я экспериментировал с немного разными префиксами и ставил JSP под WEB-INF
, а также такие вещи, как <mvc:view-controller path="/*" />
, но пока не повезло.
(Должен ли я даже нужно указать InternalResourceViewResolver или должен по умолчанию вид резольверы об этом позаботиться?)
JSP файлы. Под src/main/webapp/jsp
(проект использует соглашения Maven) У меня, очевидно, есть JSP.
Есть ли что-то не так с этим местом?
web.xml:
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Я просмотрел Spring MVC documentation, но моя проблема, вероятно, слишком тривиально и очевидно, легко найти там помощь. :-P
Может ли кто-нибудь просветить меня о том, что я делаю неправильно?