Я новичок в Spring Web MVC Framework, и раньше я использовал распорки 2.
Я создаю новый динамический веб-проект, используя eclipse EE, и добавляю все файлы в /web-info/lib.
.
Вся иерархия проекта выглядит следующим образом:
SpringMVCTest
WEB-INF
web.xml
example-servlet.xml
jsp
hello.jsp
lib
xxxx.jars
.....
Это определение сервлета:
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Это пример-servlet.xml:
<context:component-scan base-package="com.kk.web.controllers" />
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
И контроллер:
package com.kk.web.controllers;
@Controller("example")
@RequestMapping("/example")
public class ExampleController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "hello";
}
@RequestMapping("/hello_jsp")
public ModelAndView hello_jsp(){
ModelAndView mv=new ModelAndView("hello");
mv.addObject("message", "welcome");
return mv;
}
}
Это сработало, когда я запустил:
http://localhost:8080/SpringMVCTest/example/hello
Но когда я бегу:
http://localhost:8080/SpringMVCTest/example/hello_jsp
Я получил предупреждение:
2011-10-17 10:36:15 org.springframework.web.servlet.DispatcherServlet noHandlerFound
Warn: No mapping found for HTTP request with URI [/SpringMVCTest/WEB-INF/jsp/hello.jsp] in DispatcherServlet with name 'example'
Кажется, что ExampleController работает, он отправляет запрос "/ example / hello_jsp" в правое представление "jsp / hello.jsp".
Но тогда пружина примет отправку файла "/jsp/hello.jsp" как другой запрос, тогда она не найдет сопоставленное сопоставление URL в контроллере "example".
Почему ?? IMO, запрос должен прийти от клиента к серверу, контроллер получает только один запрос здесь "/ exmaple / hello_jsp", не так ли?
А как это исправить?
Кстати, я могу установить шаблон URL на "/*.xxx"
, но мне не нужен суффикс в URL.
Есть идеи?