`
awdxzc
  • 浏览: 335012 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring MVC 配置多视图模块,多输出格式

阅读更多
spring mvc 可能要配置多个视图模式,比方说需求要求有jsp和freemarker 2种输出文件格式。freemarker可以自己定制

xml|json|html等。
面对这样的需求,显然单纯的mvc的jsp视图模板是不够的,所以需要spring对freemarker进行支持。
对于这样的问题,有多种解决方案,就我用过的2中说说吧:
1:使用org.springframework.web.servlet.view.ResourceBundleViewResolver
直接上代码:
<!--配置一个ResourceBundleViewResolver 配置一个spring-views.properites 文件(必须在根目录) 加载的顺序是最优先 

"order = 0" -->
<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
	<property name="basename" value="spring-views" />
	<property name="order" value="0" />
</bean>

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">           

 <property name="templateLoaderPath">
	      <value>/WEB-INF/views/modules</value>
	</property>
</bean>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/views/"/>
	<property name="suffix" value=".jsp"/>
</bean>


spring-views.properties:
articles.(class)=org.springframework.web.servlet.view.JstlView
articles.url=articles.jsp

module-content-articles.(class)=org.springframework.web.servlet.view.freemarker.FreeMarkerView
module-content-articles.url=modules/content/html/articles.ftl

这里的class指定的是解析的视图类,url指定的是视图页面。

Controller类中请求方式:
return "module-content-articles";






我用的是另一种配置多视图的方式:

<!--
	<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
		<property name="basename" value="spring-views" />
		<property name="order" value="0" />
	</bean>-->

	<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
	    <property name="templateLoaderPath">
	        <value>/WEB-INF/views/modules</value>
	    </property>
	</bean>
	
	<bean id="xmlviewResolver"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="suffix" value=".xml.ftl" />
        <property name="contentType" value="text/xml;charset=UTF-8"></property>
    </bean>
    
    <bean id="htmlviewResolver"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="suffix" value=".html.ftl" />
        <property name="contentType" value="text/html;charset=UTF-8"></property>
    </bean>
    
    <bean id="jsonviewResolver"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="suffix" value=".json.ftl" />
        <property name="contentType" value="application/text;charset=UTF-8"></property>
    </bean>

	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"/>
		<property name="suffix" value=".jsp"/>
	</bean>

这样就没有使用org.springframework.web.servlet.view.ResourceBundleViewResolver了,这样的话spring-views.properties文

件就没有存在的意义了。


Controller类:
return "content/"+format+"/articles";


目录结构
分享到:
评论
5 楼 kingzhe2011 2014-07-29  
4 楼 tianyifeng1989 2013-12-13  
<property name="suffix" value=".xml.ftl" />  是不是可以是xml文件和ftl文件?可是我的出错了说找不到


<bean id="viewResolverFtl" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> 
        <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/> 
        <property name="contentType" value="text/html; charset=utf-8"/> 
        <property name="cache" value="true" /> 
        <property name="suffix" value=".html.ftl" />
        <property name="order" value="0"/> 
        <property name="exposeRequestAttributes" value="false"/>
<property name="exposeSessionAttributes" value="false"/>
<property name="exposeSpringMacroHelpers" value="true"/>
    </bean>
     
    <!-- 配置freeMarker的模板路径 --> 
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> 
        <property name="templateLoaderPath"> 
            <value>/WEB-INF/view/</value> 
        </property>   
        <property name="defaultEncoding"> 
            <value>utf-8</value> 
        </property> 
        <property name="freemarkerSettings"> 
            <props> 
                <prop key="template_update_delay">0</prop> 
            </props> 
        </property> 
    </bean>
3 楼 qq630703545 2013-09-14  
第2种方式如果 一个jsp文件叫做 test ftl也叫test 会有问题啊
2 楼 awdxzc 2011-01-24  
sunnylocus 写道
能解释下么?
引用
这样就没有使用org.springframework.web.servlet.view.ResourceBundleViewResolver了,这样的话spring-views.properties文

件就没有存在的意义了。
但我看在文件还是配置了ResourceBundleViewResolver,不自相矛盾么?


请看清楚,org.springframework.web.servlet.view.ResourceBundleViewResolver 在第2种方法里面已经被注释掉了。
1 楼 sunnylocus 2011-01-12  
能解释下么?
引用
这样就没有使用org.springframework.web.servlet.view.ResourceBundleViewResolver了,这样的话spring-views.properties文

件就没有存在的意义了。
但我看在文件还是配置了ResourceBundleViewResolver,不自相矛盾么?

相关推荐

    spring mvc demo加用户模块的

    通过这个“spring mvc demo加用户模块的”项目,开发者可以学习如何组织Spring MVC的项目结构,如何编写Controller、Service和DAO,以及如何配置和使用Spring MVC的各个组件。同时,了解用户管理的常见需求和解决...

    spring 与 spring mvc 整合 配置讨论

    3. **Spring MVC配置文件**:如`spring-mvc-config.xml`,配置视图解析器、拦截器、处理器映射器等,例如: ```xml &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; ``...

    Spring MVC 4.2.3

    Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够有效地分离业务逻辑、数据处理和用户界面。在"Spring MVC 4.2.3"版本中,我们看到了一系列的...

    Spring MVC 配置请求的默认处理器.rar

    在Spring MVC框架中,配置请求的默认处理器是构建Web应用程序的关键步骤。这个过程涉及到设置DispatcherServlet,它作为Spring MVC的核心组件,负责调度HTTP请求到相应的控制器。以下将详细阐述Spring MVC配置请求的...

    Mastering Spring MVC 4(2015.09)源码

    Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    此外,Spring MVC还能够与其他Spring模块(如Spring Security、Spring WebSocket等)无缝集成,提供完整的解决方案。 总之,“Spring MVC - A Tutorial”这份指南会详细讲解Spring MVC的各个核心组件和使用技巧,...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...

    最全最经典spring-mvc教程

    Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求和响应,使得开发者可以专注于业务逻辑而不是底层实现。在这...

    spring mvc 4.0

    Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在Spring MVC 4.0版本中,它引入了许多改进和新特性,以提升开发效率和应用程序的性能。 1. **依赖注入**:Spring ...

    精通Spring MVC4

    Spring MVC是Spring框架的一个模块,专为构建Web应用程序而设计,以其灵活性、高效性和可扩展性受到广大开发者的青睐。下面我们将详细探讨Spring MVC的核心概念和技术点。 1. **Spring MVC架构** Spring MVC采用...

    Spring MVC实例 MVC注解配置

    使用`ModelAndView`对象或者直接在控制器方法中返回一个字符串(视图名),Spring MVC会根据配置的视图解析器来确定具体的视图文件。 5. **DispatcherServlet**: - Spring MVC的核心组件,它是Servlet的实现,...

    Spring MVC使用Demo

    Spring MVC是Spring框架的一个核心模块,专用于构建Web应用程序。这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式...

    Spring mvc5.0.3 所有jar包

    Spring MVC是Spring框架的一个核心模块,专注于构建Web应用程序。在Spring MVC 5.0.3版本中,它提供了丰富的功能和改进,使得开发者能够更高效地开发RESTful服务、处理HTTP请求、管理视图以及集成其他Java库和框架。...

    spring mvc+hibernate+spring完整配置步骤

    同时,Spring MVC的注解配置使得开发更加简便,而Struts2往往需要较多的XML配置。 Spring MVC处理AJAX请求时,可以直接返回数据,通过`@ResponseBody`注解,框架会自动将对象转换为JSON格式,便于前端处理。这简化...

    spring MVC简单示例

    这个"spring MVC简单示例"是为了帮助初学者理解Spring MVC的基本工作原理和配置,通过实践这个例子,你可以了解到如何创建一个简单的Controller、配置视图解析器并建立一个基本的请求处理流程。随着对Spring MVC的...

    spring mvc jar包

    3. `org.springframework.web.servlet-3.0.2.RELEASE.jar`:这是 Spring MVC 的核心模块,提供了控制器(Controller)、模型视图(ModelAndView)以及调度器Servlet(DispatcherServlet)等关键组件。...

    Spring MVC配置文档及原理介绍

    - `web-config.xml`:包含Spring MVC的核心配置,如视图解析器、处理器映射器等。 - `service-config.xml`:配置业务逻辑层的服务类。 - `hib-config.xml`:Spring与Hibernate集成的配置文件。 - `dao-config.xml`:...

Global site tag (gtag.js) - Google Analytics