`
prodream
  • 浏览: 106174 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring视图解析器

阅读更多

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 MVC--5.视图和视图解析器

    在Spring MVC框架中,视图和视图解析器是实现MVC模式中“V”(View)部分的关键组件。它们负责将处理完的数据转化为用户可以理解的格式,并展示在浏览器上。视图解析器则是连接控制器与视图的桥梁,它负责根据返回的...

    Spring配置Freemarker视图解析器,配置多个视图解析器

    在Spring框架中,视图解析器是用于将处理后的模型数据转换为用户可查看的页面的关键组件。Freemarker是一个强大的、轻量级的模板引擎,常被用作Spring MVC中的视图技术。本篇文章将深入探讨如何在Spring中配置...

    SpringMVC及视图解析器

    6. 视图解析器:在 spring 容器中添加视图解析器,例如 InternalResourceViewResolver,用于将 Controller 的返回值解析为视图。 二、相关注解 1. @Controller:写在控制层,代替 Servlet,用于标识 Controller 类...

    SpringMVC-5 视图和视图解析器

    在Spring MVC框架中,视图和视图解析器是核心组件,它们负责处理控制器返回的数据并将其呈现给用户。本文将深入探讨视图与视图解析器的工作原理、常用实现及自定义视图的实现方法,同时也会讲解重定向操作。 1. **...

    Spring MVC中InternalResourceViewResolver视图解析器的默认行为.docx

    在Spring MVC框架中,视图解析器扮演着至关重要的角色,它负责将控制器处理方法返回的逻辑视图名称转换为实际的物理视图资源。`InternalResourceViewResolver`是Spring MVC提供的一种内置的视图解析器,主要用于处理...

    Spring Boot应用配置常用相关视图解析器详解

    Spring Boot应用配置常用相关视图解析器详解 Spring Boot应用配置常用相关视图解析器详解是指在Spring Boot应用程序中配置和使用视图解析器的相关知识点。视图解析器是Web应用程序中一个非常重要的组件,它负责将...

    Spring配置Freemarker视图解析器,前台页面全部使用freemarker渲染

    下面我们将深入探讨如何配置Spring以使用Freemarker作为视图解析器,以及如何在前端页面上全面使用Freemarker进行渲染。 首先,我们需要在Spring的配置文件中添加对Freemarker的支持。这通常涉及到以下几个步骤: ...

    SpringBoot项目中的视图解析器问题(两种)

    在Spring Boot项目中,视图解析器是用于将控制器处理的结果转换为用户可查看的页面。Spring Boot官方推荐使用HTML视图解析器,这通常涉及到模板引擎如Thymeleaf,因为它们提供了更灵活和强大的动态页面渲染能力。...

    velocity jsp多视图解析器整合

    本话题将详细讲解如何在Spring MVC框架中整合Velocity和JSP,实现多视图解析器的功能,从而根据需求返回不同的视图。 **1. Velocity模板引擎** Velocity是一个开源的Java模板引擎,它允许开发者将业务逻辑与展示...

    SpringMVC自定义多视图

    Spring MVC默认提供了一些视图解析器,如InternalResourceViewResolver用于处理JSP视图,而JsonViewResolver可以处理JSON响应。但为了实现自定义多视图,我们可能需要创建自己的视图解析器或者扩展现有的。 例如,...

    springjpa 和 spring多视图配置实例

    在Spring MVC中,Freemarker可以作为视图解析器,将控制器返回的数据填充到模板中,生成最终的响应页面。 至于JSON(JavaScript Object Notation),它是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    spring3 多视图集成

    1. **配置视图解析器**:在Spring的配置文件中,你需要为每种视图技术配置相应的视图解析器。例如,对于Velocity,你需要配置`VelocityViewResolver`,指定模板目录、后缀等属性。 ```xml &lt;bean class="org.spring...

    spring源码解析

    5. **MVC框架**:Spring MVC是Spring用于构建Web应用程序的模块,它包括DispatcherServlet、Model-View-Controller模式、视图解析器和模型对象等组件。 6. **数据访问集成**:Spring提供了JDBC模板、Hibernate、...

    spring2 集成视图

    至此,我们已经介绍了如何在Spring2中集成视图,包括配置`DispatcherServlet`、视图解析器、创建Controller以及使用JSP、FreeMarker和Thymeleaf等不同视图技术。理解并熟练掌握这些知识点,能够帮助开发者构建高效、...

    Spring源代码解析

    此外,Spring MVC还提供了视图解析器、数据绑定、异常处理等功能。 在源代码分析过程中,理解Spring的模块化设计和组件间的交互至关重要。例如,`BeanPostProcessor`接口允许自定义bean初始化和销毁的逻辑,`...

    spring源码深入解析

    它通过DispatcherServlet处理请求,Controller处理业务逻辑,视图解析器负责渲染视图,实现了前后端分离。 6. **数据访问集成**:Spring提供了JDBC模板、ORM(Object-Relational Mapping)支持,如Hibernate、...

    Spring源码解析(高清版)

    5. Spring MVC:解释请求处理流程,以及视图解析器、拦截器等关键组件的工作原理。 6. Spring Boot:讨论Spring Boot的自动配置、起步依赖和运行时特性。 通过对这些知识点的深入学习,开发者不仅可以提升对Spring...

    spring-webmvc-5.0.9 jar包、源码和javadoc

    Model部分存储了业务数据,而View则指定了要渲染的视图名称,视图解析器会根据这个名字找到对应的模板文件。 五、视图解析器(ViewResolver) 视图解析器负责将视图名称转换为实际的视图对象,例如JSP页面路径。常见...

    Spring_MVC_控制器方法返回值与视图的关系

    Spring MVC 控制器方法返回值与视图的关系 在 Spring MVC 框架中,控制器方法的返回值对视图的选择和跳转有着至关重要的影响。今天,我们将深入探索控制器方法返回值与视图的关系,并探讨不同返回值类型对视图的...

Global site tag (gtag.js) - Google Analytics