Ham*_*amy 5 java configuration spring spring-mvc url-pattern
我使用Spring来渲染我的JSP,而我的url-pattern DispatcherServlet是"/".这似乎是为了使欢迎文件列表永远不会被考虑.我真的想DispatcherServlet处理除"/"之外的所有事情.但是,我想避免文件扩展名(例如,*.html,.do等),并且我正在使用InternalResourceViewResolver,因此将调度程序servlet的url-pattern设置为"/ "会使其接受太多(例如对InternalResourceViewResolver生成的JSP页面的内部请求将被调度程序servlet拦截,然后调度程序servlet会因为没有/WEB-INF/jsp/about.jsp的映射而抛出错误.任何帮助将不胜感激 - 我对Spring 很新(例如2天;-))
以下是相应的文件:
目录结构
/war (I'm using AppEngine)
index.jsp (Simply includes WEB-INF/jsp/index.jsp)
/WEB-INF
XML Config files
/jsp
index.jsp
about.jsp
...
Run Code Online (Sandbox Code Playgroud)
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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!--
We purposefully do not make this /*. The convention here is to define
mappings for files that exist, and write a good 404 page for anything
else. Also, if you say /*, then the dispatcher servlet will intercept
all requests, and the InternalResourceViewResolver will fail to
resolve internal resources (e.g. jsp pages) because the dispatcher
servlet will be intercepting all of the requests, even the internal
ones
-->
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
调度员servlet.xml中
<!-- Search for and import all components in the controllers package -->
<context:component-scan base-package="org.foo.server.controllers" />
<bean name="viewResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="order" value="2" />
<property name="location" value="/WEB-INF/views.xml" />
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000" />
</bean>
<!--
Given an arbitrary view name, such as 'about, that has been returned
from a handler (controller), this will simply create
'/WEB-INF/jsp/about.jsp' and send that to the Dispatcher Servlet.
Because of the way ViewResolvers are chained (e.g. search until a View
is found), coupled with the annoyance that this ViewResolver cannot
determine if a View is found, this *has* to be the last ViewResolver
considered, so I have set the order very high. See
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-viewresolver-chaining
for more details
-->
<bean id="jspResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<property name="order" value="999" />
</bean>
Run Code Online (Sandbox Code Playgroud)
JSP控制器(org.foo.server.controllers"包中包含的控制器之一)
@Controller
public class WebportalController {
@RequestMapping(value = "/myforms", method = RequestMethod.GET)
public String getMyForms() {
return "myforms";
}
@RequestMapping(value = "/about", method = RequestMethod.GET)
public String getAbout() {
return "about";
}
... etc (for now all of the JSP pages are fairly static)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4764 次 |
| 最近记录: |