Я новичок в Spring, читал много, но не могу понять, почему это не работает. Я включил соответствующие разделы ниже ...
web.xml:Spring - ПРЕДУПРЕЖДЕНИЕ: нет сопоставления для HTTP-запроса с URI
<servlet>
<servlet-name>display</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>display</servlet-name>
<url-pattern>*.p</url-pattern>
</servlet-mapping>
дисплея servlet.xml:
<mvc:annotation-driven />
<context:component-scan base-package="com" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
displayController.java:
package com;
@Controller
public class displayController {
@RequestMapping("/display")
public ModelAndView displayName() {
System.out.println("-- in handleRequest");
ModelAndView mv = new ModelAndView("display");
user u = new user();
u.setUsername("bob");
mv.addObject("user", u);
return mv;
}
}
Теперь, насколько я знаю, это то, что я думаю, что происходит, но это не так ..
1. Я иду в URL «/user/display.p»
2. Приложение просматривает web.xml, находит шаблон url «* .p» и замечает, что он должен быть связан с отображением сервлета. Затем создается экземпляр DispatcherServlet и загружается контекст в display-servlet.xml.
3. Когда загружен display-servlet.xml, он замечает mvc: annotation-driven и делает что-то (не совсем уверен, что я все еще это понимаю, но я думаю, что мне это нужно. Затем он замечает компонент- сканирование и сканирование через пакет «com», в котором находится displayController.
4. displayController выполняет поиск аннотаций и обнаруживает, что это контроллер, а также любой URL с «/ дисплеем» в нем должен автоматически запускать функция DISPLAYNAME().
5. [Где-то здесь вещи перерыв ...]
6. Затем, что должно произойти (но делает не) - это должен быть загружен вид «дисплей» и должен быть загружен «/WEB-INF/jsp/display.jsp». Тем не менее, никакого «отображения» не обнаружено, и я получаю сообщение об ошибке «ПРЕДУПРЕЖДЕНИЕ: сопоставление не найдено для HTTP-запроса с URI [/testing/user/display.p] в DispatcherServlet с именем« display »»
Может кто-нибудь помочь я на это?
Спасибо!
Вызывается функция displayName(), т.е. сообщение «in handleRequest» распечатывается? – gkamal
Что такое/testing/user в url. Если вы получаете доступ к /testing/user/display.p из браузера, тогда RequestMapping должен быть для/testing/user/display – gkamal
Почему вы переходите к '/ user/display.p', если ваш контроллер отображается как'/display .p'? – axtavt