在Spring MVC中, XmlViewResolver用于基于XML文件中的视图bean解析“视图名称”。 默认情况下, XmlViewResolver
将从/WEB-INF/views.xml加载视图bean,但是,可以通过“ location ”属性覆盖此位置:
<beans ...>
<bean class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="location">
<value>/WEB-INF/spring-views.xml</value>
</property>
</bean>
</beans>
在上述情况下,它将从“ /WEB-INF/spring-views.xml ”加载视图bean。 请参见XmlViewResolver示例:
1.控制器
控制器类返回一个名为“ WelcomePage ”的视图。
//...
public class WelcomeController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("WelcomePage");
return model;
}
}
2. XmlViewResolver
在Spring的bean配置文件中注册XmlViewResolver,从“ /WEB-INF/spring-views.xml ”加载视图bean。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
<!-- Register the bean -->
<bean class="com.mkyong.common.controller.WelcomeController" />
<bean class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="location">
<value>/WEB-INF/spring-views.xml</value>
</property>
</bean>
</beans>
3.查看豆
“ view bean ”只是在Spring的bean配置文件中声明的普通Spring bean,其中
- “ id ”是要解析的“视图名称”。
- “ 类 ”是视图的类型。
- “ url ”属性是视图的URL位置。
文件:spring-views.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="WelcomePage"
class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="/WEB-INF/pages/WelcomePage.jsp" />
</bean>
</beans>
怎么运行的 ?
当控制器返回视图名称“ WelcomPage ”时,XmlViewResolver
将在“ spring-views.xml”文件中找到bean ID“ WelcomPage ”,并返回对应视图的URL“ /WEB-INF/pages/WelcomPage.jsp ”回到DispatcherServlet
。
下载源代码
下载它– SpringMVC-XmlViewResolver-Example.zip (7KB)
参考
翻译自: https://mkyong.com/spring-mvc/spring-mvc-xmlviewresolver-example/