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 1723将Spring自带的org.springframework.c ... -
spring的扩展点--PropertyPlaceholderConfigurer
2010-05-05 14:01 1074它的作用是一个资源属性的配置器,能够将BeanFactory的 ... -
ApplicationContextAware
2010-03-30 14:36 1155JDK-doc 2.5.6 Interface Applic ... -
org.springframework.beans.factory.BeanCreationException: Error creating bean wit
2010-01-24 18:45 3834org.springframework.beans.facto ... -
SPRING框架的7大模块
2008-08-23 16:48 987核心容器:核心容器 ... -
使用Spring编写第一个程序-spring初级体验
2008-08-23 16:52 788对最原始的HelloWorld.java ... -
Spring中BeanFactory配置文件的元素解析
2008-08-24 11:39 743<?xml version="1.0" ... -
使用Lookup方法注射方法
2008-08-24 17:46 698spring方法解决下面的问题:一个singleton bea ... -
替换任意的方法
2008-08-24 18:06 834在spring中不但提供了Lookup方法来注射方法,还提供了 ... -
一个普通表单控制器(SimpleFornController)处理视图流转的例子
2008-08-26 09:40 787Spring附有一些简单的窗体处理handler,这些hand ... -
SimpleFormController简单表单控制器的处理流程
2008-08-26 10:19 8741.当表单控制器接 ... -
SPRING分发器(DispatcherServlet)
2008-09-09 00:15 1365分发器(DispatcherServlet) Sprin ... -
Spring的View和ViewResolver的使用
2008-09-11 23:15 1533打开Spring的源代码,我们可以在org.springfra ... -
ModelAndView解析
2008-09-16 09:39 1268查看spring的帮助文档得到以下信息: org.sprin ... -
spring验证器Validator接口
2008-09-16 21:30 2630spring2.0 Validator接口 ... -
spring web mvc配置
2008-09-17 11:04 1130spring内建一个请求驱动 ... -
Spring dataSource配置
2010-01-23 13:40 1818不管通过何种持久化 ... -
AOP(Aspect Oriented Programming ) 面向切面编程
2010-01-23 13:38 835AOP是什么? AOP是OO ...
相关推荐
在Spring MVC框架中,视图和视图解析器是实现MVC模式中“V”(View)部分的关键组件。它们负责将处理完的数据转化为用户可以理解的格式,并展示在浏览器上。视图解析器则是连接控制器与视图的桥梁,它负责根据返回的...
在Spring框架中,视图解析器是用于将处理后的模型数据转换为用户可查看的页面的关键组件。Freemarker是一个强大的、轻量级的模板引擎,常被用作Spring MVC中的视图技术。本篇文章将深入探讨如何在Spring中配置...
6. 视图解析器:在 spring 容器中添加视图解析器,例如 InternalResourceViewResolver,用于将 Controller 的返回值解析为视图。 二、相关注解 1. @Controller:写在控制层,代替 Servlet,用于标识 Controller 类...
在Spring MVC框架中,视图和视图解析器是核心组件,它们负责处理控制器返回的数据并将其呈现给用户。本文将深入探讨视图与视图解析器的工作原理、常用实现及自定义视图的实现方法,同时也会讲解重定向操作。 1. **...
在Spring MVC框架中,视图解析器扮演着至关重要的角色,它负责将控制器处理方法返回的逻辑视图名称转换为实际的物理视图资源。`InternalResourceViewResolver`是Spring MVC提供的一种内置的视图解析器,主要用于处理...
Spring Boot应用配置常用相关视图解析器详解 Spring Boot应用配置常用相关视图解析器详解是指在Spring Boot应用程序中配置和使用视图解析器的相关知识点。视图解析器是Web应用程序中一个非常重要的组件,它负责将...
下面我们将深入探讨如何配置Spring以使用Freemarker作为视图解析器,以及如何在前端页面上全面使用Freemarker进行渲染。 首先,我们需要在Spring的配置文件中添加对Freemarker的支持。这通常涉及到以下几个步骤: ...
在Spring Boot项目中,视图解析器是用于将控制器处理的结果转换为用户可查看的页面。Spring Boot官方推荐使用HTML视图解析器,这通常涉及到模板引擎如Thymeleaf,因为它们提供了更灵活和强大的动态页面渲染能力。...
本话题将详细讲解如何在Spring MVC框架中整合Velocity和JSP,实现多视图解析器的功能,从而根据需求返回不同的视图。 **1. Velocity模板引擎** Velocity是一个开源的Java模板引擎,它允许开发者将业务逻辑与展示...
Spring MVC默认提供了一些视图解析器,如InternalResourceViewResolver用于处理JSP视图,而JsonViewResolver可以处理JSON响应。但为了实现自定义多视图,我们可能需要创建自己的视图解析器或者扩展现有的。 例如,...
在Spring MVC中,Freemarker可以作为视图解析器,将控制器返回的数据填充到模板中,生成最终的响应页面。 至于JSON(JavaScript Object Notation),它是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
1. **配置视图解析器**:在Spring的配置文件中,你需要为每种视图技术配置相应的视图解析器。例如,对于Velocity,你需要配置`VelocityViewResolver`,指定模板目录、后缀等属性。 ```xml <bean class="org.spring...
5. **MVC框架**:Spring MVC是Spring用于构建Web应用程序的模块,它包括DispatcherServlet、Model-View-Controller模式、视图解析器和模型对象等组件。 6. **数据访问集成**:Spring提供了JDBC模板、Hibernate、...
至此,我们已经介绍了如何在Spring2中集成视图,包括配置`DispatcherServlet`、视图解析器、创建Controller以及使用JSP、FreeMarker和Thymeleaf等不同视图技术。理解并熟练掌握这些知识点,能够帮助开发者构建高效、...
此外,Spring MVC还提供了视图解析器、数据绑定、异常处理等功能。 在源代码分析过程中,理解Spring的模块化设计和组件间的交互至关重要。例如,`BeanPostProcessor`接口允许自定义bean初始化和销毁的逻辑,`...
它通过DispatcherServlet处理请求,Controller处理业务逻辑,视图解析器负责渲染视图,实现了前后端分离。 6. **数据访问集成**:Spring提供了JDBC模板、ORM(Object-Relational Mapping)支持,如Hibernate、...
5. Spring MVC:解释请求处理流程,以及视图解析器、拦截器等关键组件的工作原理。 6. Spring Boot:讨论Spring Boot的自动配置、起步依赖和运行时特性。 通过对这些知识点的深入学习,开发者不仅可以提升对Spring...
Model部分存储了业务数据,而View则指定了要渲染的视图名称,视图解析器会根据这个名字找到对应的模板文件。 五、视图解析器(ViewResolver) 视图解析器负责将视图名称转换为实际的视图对象,例如JSP页面路径。常见...
Spring MVC 控制器方法返回值与视图的关系 在 Spring MVC 框架中,控制器方法的返回值对视图的选择和跳转有着至关重要的影响。今天,我们将深入探索控制器方法返回值与视图的关系,并探讨不同返回值类型对视图的...