При использовании «/ *» в качестве шаблона URL в web.xml весной mvc, я не перенаправлен на страницу.
Всякий раз, когда я пытаюсь указать URL ниже, я получаю регистратор внутри методов контроллера, но я не получаю страницу.
URL попытался: http://localhost:8080/mvc-example
Регистратор: Запрошенная домашняя страница
02 июля 2019 15:57:35 org.springframework.web.servlet.PageNotFound
noHandlerFound ПРЕДУПРЕЖДЕНИЕ: не найдено сопоставление для HTTP-запроса с URI
[/mvc-example/WEB-INF/views/helloAgain.jsp] в DispatcherServlet с
имя 'mvc-example'
и
URL попытался: http://localhost:8080/mvc-example/hello
Регистратор: Home hello Запрошенная страница
02 июля 2019 15:58:38 org.springframework.web.servlet.PageNotFound
noHandlerFound ПРЕДУПРЕЖДЕНИЕ: не найдено сопоставление для HTTP-запроса с URI
[/mvc-example/WEB-INF/views/hello.jsp] в DispatcherServlet с именем
'MVC-пример'
Это структура моего проекта:
Мой контроллер:
@Controller
public class HelloController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String printHello(Locale locale, Model model) {
System.out.println("Home hello Page Requested");
model.addAttribute("message", "Hello Spring MVC Framework!");
return "hello";
}
@RequestMapping(value = "/", method = RequestMethod.GET)
public String printAgainHello(Locale locale, Model model) {
System.out.println("Home Page Requested");
model.addAttribute("message", "Hello Again Spring MVC Framework!");
return "helloAgain";
}
}
Web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>mvc-example</display-name>
<servlet>
<servlet-name>mvc-example</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-example-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-example</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Файл mvc-example-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing
infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<context:component-scan base-package="com.khan" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources
in the /WEB-INF/views directory -->
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
</beans:beans>
Когда я использую "/" только тогда, он работает нормально, как и ожидалось, но "/ *" не работает. Я ошибаюсь.
Кто-нибудь, пожалуйста, объясните мне это?
Заранее спасибо.