`

spring设置多个ViewResolve

    博客分类:
  • JAVA
阅读更多

      接了一个外包项目开发,有微信前端和后台管理二套界面,为了方便,把2个系统放在了一个工程里面,但是前端开发技术方有了分歧,最后决定后台用velocity,微信用jsp,那么就需要修改一下spring-mvc的配置。

1、重写InternalResourceView方法,主要为了高级别的解析器解析不到的时候,抛给低级别的解析器。 

 

package com.studio.core.access;

import java.io.File;
import java.util.Locale;

import org.springframework.web.servlet.view.InternalResourceView;

/**
 * 自定义视图解析(通过配置实现多视图整合,如jsp,velocity )
 * @author liuhy
 *
 */
public class JspResourceView extends InternalResourceView {  
    @Override  
    public boolean checkResource(Locale locale) {  
    	System.out.println(this.getServletContext().getRealPath("/") +"++"+ getUrl());
	     File file = new File(this.getServletContext().getRealPath("/") + getUrl());  
	     return file.exists();// 判断该页面是否存在  
    }  
}  

 

 

2、order级别设置解析器的优先级,先按jsp解析,解析不到文件,在vm解析。

 

<bean id="velocityViewResolver"
		class="com.supply.network.melody.common.web.velocity.resolver.FixedVelocityLayoutViewResolver">
		<property name="order" value="10" />
		<property name="suffix" value=".vm" />
		<property name="prefix" value="screen/" />
		<property name="layoutUrl" value="layout/default_layout.vm" />
		<property name="exposeSpringMacroHelpers" value="true" />
		<property name="dateToolAttribute" value="dateTool" />
		<property name="numberToolAttribute" value="numberTool" />
		<property name="toolboxConfigLocation" value="WEB-INF/classes/conf/vm-toolbox.xml" />
		<property name="contentType" value="${web.contentType}"></property>
		<property name="exposeRequestAttributes" value="true"></property>
	</bean>
	
	<bean id="jspViewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="com.studio.core.access.JspResourceView"/>  
		<property name="contentType" value="${web.contentType}"></property>
		<property name="order" value="1" />
		<property name="prefix" value="/WEB-INF/views/front/" />
		<property name="suffix" value=".jsp" />
	</bean>

 

 

分享到:
评论

相关推荐

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

    本篇文章将深入探讨如何在Spring中配置Freemarker视图解析器,以及如何配置多个视图解析器以实现更灵活的应用场景。 首先,让我们了解如何配置单个Freemarker视图解析器。在Spring的配置文件(如`...

    spring多个定时任务quartz配置

    本文将深入探讨如何在Spring中配置Quartz以实现多个定时任务。 首先,我们需要理解Quartz的基本概念。Quartz是一个开源的工作调度框架,它允许应用程序定义作业(Jobs)和触发器(Triggers),以在指定的时间执行...

    Springcloud 多数库 多数据源整合,查询动态切换数据库

    1. **配置多数据源**:Spring Boot提供了DataSourceAutoConfiguration,它允许我们配置多个数据源。每个数据源可以有自己的配置,如JDBC连接池、数据库驱动、URL、用户名和密码等。我们可以使用@...

    Spring定时任务(多个实例)

    在分布式环境中,如果有多台服务器同时运行同一个Spring应用,可能会出现定时任务重复执行的问题。为解决此问题,可以采用以下策略: - 使用数据库存储`Trigger`信息,确保只有一个实例获取并执行任务。 - 使用...

    SpringCloud项目集成多个SpringBoot连接数据库成功

    集成了多个SpringBoot项目的SpringCloud项目,并且连接MySQL数据库成功的小Demo。需要进行系统开发可直接在这个基础上添加Controller和Service内容。下载前请先看项目的执行步骤及架构链接是否合适您使用:...

    spring的一个适合初学者的项目

    Spring框架包含多个模块,如Core Container、Data Access/Integration、Web、AOP、Instruments和Test等,这些模块提供了全面的解决方案。 在"Spring_3300_Registration_11"这个项目中,我们可以推测这是一个关于...

    Spring Cloud Feign统一设置验证token实现方法解析

    Spring Cloud Feign统一设置验证token实现方法解析 Spring Cloud Feign是一个基于Netflix的Feign组件,提供了一个简洁的方式来构建RESTful风格的微服务接口。Feign组件提供了一个统一的接口调用方式,使得微服务...

    spring设置动态定时任务

    `concurrent` 属性设置为 `false` 表示同一 Job 不会并发执行。 #### 1.2 CronTrigger 配置 ```xml &lt;bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"&gt; * * * * ?"/&gt; ``...

    Quartz + spring简单配置多个任务调度

    Quartz + spring简单配置多个任务调度 spring配置文件 简单配置

    Spring的四个基础jar包

    Spring的四个基础jar包,分别对应Spring核心容器的四个模块。 spring-core-4.3.6.RELEASE.jar spring-beans-4.3.6.RELEASE.jar spring-context-4.3.6.RELEASE.jar spring-expression-4.3.6.RELEASE.jar

    Spring mail 使用多个账号发送带有附件的HTML邮件

    在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建企业级应用程序提供了全面的编程和配置模型。其中,Spring Mail模块是Spring框架的一部分,它简化了通过JavaMail API发送电子邮件的过程。本文将深入...

    spring多数据源

    在许多实际项目中,我们可能需要连接并操作多个数据库,比如主从数据库、读写分离、不同环境的数据隔离等,这时就需要用到Spring的多数据源支持。 Spring多数据源允许我们在一个应用中同时管理多个数据库连接,通过...

    详解Spring Boot 配置多个RabbitMQ

    Spring Boot 配置多个 RabbitMQ Spring Boot 是一个流行的 Java 框架,用于快速构建生产级别的应用程序。RabbitMQ 是一个消息队列中间件,用于实现异步消息处理和队列管理。配置多个 RabbitMQ 实例是为了提高系统的...

    Spring Boot整合Spring Batch,实现批处理

    3. **定义作业(Job)和步骤(Step)**:一个作业由一个或多个步骤组成,每个步骤负责执行特定的数据处理任务。我们可以使用Spring的注解驱动模式,如`@JobConfiguration`和`@StepScope`,来定义作业和步骤。 4. **...

    spring2.0升级到spring3.0.5的开发包

    10. **更多模块**:Spring 3.0.5包含了多个模块的更新,例如`org.springframework.context-3.0.5.RELEASE.jar`包含了核心上下文模块,`org.springframework.web.servlet-3.0.5.RELEASE.jar`则是Web MVC模块,其他如`...

    spring第一个学习得例子

    4. Spring Boot:为了简化Spring应用的起步,你可能还会了解到Spring Boot,它预配置了很多默认设置,让创建独立的、生产级别的应用变得简单。 通过实践这个例子,你不仅会理解Spring的基本用法,还能掌握如何在...

    Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权

    1. **配置Redis**:由于微服务架构中多个服务可能需要共享用户信息,因此使用Redis作为集中式的session存储是常见的选择。这样,用户在任一服务登录后,其认证状态可以在所有服务中同步。 2. **配置Spring Security...

    Spring Quartz如何动态配置时间

    Spring Quartz 是一个功能强大的任务调度框架,广泛应用于 Java 企业级应用程序中。其中一个重要的功能便是动态配置时间,触发相应的任务。在本文中,我们将讨论如何使用 Spring Quartz 实现动态配置时间,并提供了...

    java中spring框架使用redis所需的5个jar包

    在Java开发中,Spring框架是广泛应用...同时,别忘了在Spring的配置文件中设置Redis的相关属性,如主机地址、端口、密码等,以便正确地初始化连接。通过这样的配置,你就可以在Spring框架下充分利用Redis的强大功能了。

    SpringCloud 15个完整例子

    这个压缩包文件"SpringCloud 15个完整例子"提供了一系列从基础到进阶的示例项目,帮助用户深入理解并实践SpringCloud的各项功能。以下是这些示例中可能涉及的关键知识点: 1. **Spring Cloud Eureka**:作为服务...

Global site tag (gtag.js) - Google Analytics