spring最常用的JSP/JSTL视图解析器是:
InternalResourceViewResolver和ResourceBundleViewResolve
首先看看InteralResourceViewResourceViewReslove在宠物店里的运用
DispatcherServlet配置如下
<servlet>
<servlet-name>petstore</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>petstore</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
这样web请求的处理器会使用petstore-servlet.xml所配置的上下文
petstore.xml
...
<beans>
<bean id="viewResolver" class="org.springframework.web.servlet.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="WEB-INF/jsp/spring"/>
<property name="suffix" value=".jsp"/>
</bean>
....
<bean id=defaultHandlerMapping" class="org.springframework.web.servlet.handle.BeanNameUrlHandlerMapping">
...
</bean>
<bean name="shop/viewCart.do" class="org.springframework.samples.jpetstore.web.spring.ViewCartController">
<property name="successView" value="Cart‘/>
</bean>
...
</beans>
说明;
1.在使用JSTL时,必须使用一个特殊的JstlView类,因为JstlView在执行类似i18n国际化的功能钱需要做一些初始化工作
2.将jsp文件置于WEB-INF下可以屏蔽客户端对他们直接反问
3.BeanNameUrlHandleMapping用于正确映射web请求和/shop/viewCart.do
4.InternalResourceViewResolve的几个便利属性简化了具有相同路径的扩展名的后续视图配置。可以简单使用Cart来对应"/WEB-INF/jsp/spring/Cart.jsp"
接着给出控制器、模型的代码片段
ViewCartController.jsp
...
public class ViewCartController implements Controller{
private String successView;
public void setSuccessView(String successView){
this.successView=successView;
}
public ModelAndView handleRequestSessionAttribute(HttpServletRequest request,HttpServletResponse reponse)
throws Exception {
...
Cart cart=(Cart) WebUtiles.getOrCeateSessionAttribute(request.getSesson(),"sessionCart",Cart.class)
....
return ModelAndView(this.successView,"cart",cart);
}
}
除了InternalResourceViewResolver,spring还提供了ResourceBundleViewResolver,它通过读取属性文件来映射视图类和url。使用ResourceBundleViewResolver的主要目的是为了混合使用多种视图技术
上面的petstore-servlet.xml可以改写为;
<beans>
...
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolve">
<property name="basename">
<value>views</value> //属性文件名为views.properties
</property>
</bean>
...
<bean id="defaultHandleMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
..
</bean>
<bean name="/shop/viewCart.do" class="org.springframework.samples.jpetstore.web.srping.ViewCartcontroller">
<property name="successView" value="Cart"/>
</bean>
...
</beans>
</beans>
<bean name="other.do" class="MyWebController">
<property name="successView" name="OtherView"/>
</bean>
</beans>
views.properties文件如下:
Cart.class=org.springframework.web.servlet.view.JstlView
Cart.url=/WEB-INF/vm/other.vm
OtherView.class=org.springframework.web.servlet.view.VelocityView
OtherView.url="WEB-INF/vm/other.vm
发表评论
-
spring-MessageSource
2010-05-05 15:41 1659将Spring自带的org.springframework.c ... -
spring的扩展点--PropertyPlaceholderConfigurer
2010-05-05 14:01 1039它的作用是一个资源属性的配置器,能够将BeanFactory的 ... -
ApplicationContextAware
2010-03-30 14:36 1119JDK-doc 2.5.6 Interface Applic ... -
org.springframework.beans.factory.BeanCreationException: Error creating bean wit
2010-01-24 18:45 3731org.springframework.beans.facto ... -
SPRING框架的7大模块
2008-08-23 16:48 946核心容器:核心容器 ... -
使用Spring编写第一个程序-spring初级体验
2008-08-23 16:52 750对最原始的HelloWorld.java ... -
Spring中BeanFactory配置文件的元素解析
2008-08-24 11:39 710<?xml version="1.0" ... -
使用Lookup方法注射方法
2008-08-24 17:46 655spring方法解决下面的问题:一个singleton bea ... -
替换任意的方法
2008-08-24 18:06 802在spring中不但提供了Lookup方法来注射方法,还提供了 ... -
一个普通表单控制器(SimpleFornController)处理视图流转的例子
2008-08-26 09:40 740Spring附有一些简单的窗体处理handler,这些hand ... -
SimpleFormController简单表单控制器的处理流程
2008-08-26 10:19 8251.当表单控制器接 ... -
SPRING分发器(DispatcherServlet)
2008-09-09 00:15 1309分发器(DispatcherServlet) Sprin ... -
Spring的View和ViewResolver的使用
2008-09-11 23:15 1485打开Spring的源代码,我们可以在org.springfra ... -
ModelAndView解析
2008-09-16 09:39 1234查看spring的帮助文档得到以下信息: org.sprin ... -
spring验证器Validator接口
2008-09-16 21:30 2566spring2.0 Validator接口 ... -
spring web mvc配置
2008-09-17 11:04 1088spring内建一个请求驱动 ... -
Spring dataSource配置
2010-01-23 13:40 1777不管通过何种持久化 ... -
AOP(Aspect Oriented Programming ) 面向切面编程
2010-01-23 13:38 810AOP是什么? AOP是OO ...
相关推荐
Spring MVC--5.视图和视图解析器
Spring配置Freemarker视图解析器,配置多个视图解析器
理解视图和视图解析器的解析流程、使用常用的InternalResourceView和JstlView、实现自定义视图、实现重定向操作
整合velocity和jsp 通过不同视图解析器,返回不同视图
Spring配置Freemarker视图解析器,前台页面全部使用freemarker渲染
org.springframework.web.servlet.view.InternalResourceViewResolver视图解析器在默认情况下(没有对它做任何配置):默认会将类上的请求路径和方法返回的字符串组合起来得到jsp视图的完整路径
主要给大家介绍了关于Spring Boot应用配置常用相关视图解析器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
SpringBoot官网推荐使用HTML视图解析器,但是根据个人的具体业务也有可能使用到JSP视图解析器,所以本文介绍了两种视图解析器,感兴趣的可以了解下
2.1.2 Spring Boot项目构建过程解析 24 2.2 使用起步依赖 27 2.2.1 指定基于功能的依赖 28 2.2.2 覆盖起步依赖引入的传递依赖 29 2.3 使用自动配置 30 2.3.1 专注于应用程序功能 31 2.3.2 运行应用程序...
Spring SpringMVC 简单整合(初学者参考) demo项目对应地址说明 :...ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。
SpringMVC设置 Spring MVC初始项目。 它包含基本的json,xml视图解析器
-- 视图解析器,经返回的逻辑视图解析为物理视图 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> ...
基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 ...
MutilAction多控制解析 SpringMVC Spring控制器 ,及视图解析器的配置
基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为...
5)Spring MVC处理流程 a.... d.ModelAndView里包含了响应View和数据信息,主控制器调用ViewResolver视图解析器根据ModelAndView的内容寻找View组件,生成响应 e.主控制器将响应内容给客户浏览器输出
详细的Spring MVC教程,内容包括控制器 重定向 保存并获取属性参数 拦截器 表单标签和验证表单 视图和视图解析器 上传文件 数据转换和格式化
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再... 4)配置视图解析器 (5)开发 Controller
主要给大家介绍了关于Spring MVC学习教程之视图解析的相关资料,文中通过示例代码介绍的非常详细,对大家学习或使用spring mvc具有一定的参考学习价值,需要的朋友们下面来一起看看吧
spring面试题 一、spring工作原理: 1.spring mvc请所有的请求都提交给...5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象 6.视图对象负责渲染返回给客户端。