`
boendev
  • 浏览: 242825 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Spring MVC下配置Velocity

 
阅读更多

配置过程中走了一些弯路 ... 将代码留下,备案.

 velocityTool summary (有详细的toolsapi): 

http://velocity.apache.org/tools/releases/2.0/summary.html

 

dispatcher-servlet.xml 配置如下:

 

<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
  		<property name="resourceLoaderPath" value="/web/default/velocity/"/>
  		  <property name="velocityProperties">  
          <props>  
            <prop key="directive.foreach.counter.name">loopCounter</prop>  
            <prop key="directive.foreach.counter.initial.value">0</prop>  
            <prop key="input.encoding">UTF-8</prop>  
            <prop key="output.encoding">UTF-8</prop>  
            <prop key="directive.foreach.counter.name">velocityCount</prop>  
            <prop key="directive.foreach.counter.initial.value">1</prop>  
            <prop key="velocimacro.library.autoreload">true</prop>  
          </props>  
        </property>  
	</bean>
  <!-- spring 视图解析器配置,这里是我自己写的解析器 -->  
    <bean id="viewResolver" class="spring.tool.MultipleViewResolver">  
        <property name="resolvers">  
            <map>  
                <entry key="jsp">  
                    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">    
                        <property name="prefix" value="/web/default/screen/"/>      
                        <property name="suffix" value=".jsp"/>
                    </bean>    
                </entry>  
                <entry key="vm">  
                    <bean class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">    
	  					 <property name="exposeRequestAttributes" value="true" />    
                        <property name="contentType" value="text/html;charset=UTF-8" />    
                          <property name="prefix" value=""/>
                         <property name="suffix" value=".vm"/>
                    </bean>    
                </entry>  
            </map>  
        </property>  
    </bean>  

 

 改造后的viewresolver,可以支持多种模板渲染,根据文件后缀区分

 

package spring.tool;

import java.util.Locale;
import java.util.Map;

import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;

/**
 * @author hp
 *
 */
public class MultipleViewResolver implements ViewResolver {
	 private Map<String, ViewResolver> resolvers;    
     
	    public void setResolvers(Map<String, ViewResolver> resolvers)     
	    {    
	        this.resolvers = resolvers;    
	    }    
	/* (non-Javadoc)
	 * @see org.springframework.web.servlet.ViewResolver#resolveViewName(java.lang.String, java.util.Locale)
	 */
	@Override
	public View resolveViewName(String viewName, Locale locale) throws Exception {
		int n = viewName.lastIndexOf(".");  
        if(n==(-1)) return null;    
        String suffix = viewName.substring(n+1);  
          
        ViewResolver resolver = resolvers.get(suffix);    
        if(resolver!=null)    
            return resolver.resolveViewName(viewName.substring(0, n), locale);   
          
        return null;  
	}

}

 

web.xml配置

 

  <context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			classpath*:/applicationContext.xml
		</param-value>
  </context-param>
   <listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
  </listener>
  
  <servlet>
         <servlet-name>springdispatcher</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
         <load-on-startup>1</load-on-startup>
     </servlet>
 

 
    <servlet-mapping>
         <servlet-name>springdispatcher</servlet-name>
         <url-pattern>*.htm</url-pattern>
     </servlet-mapping>

 

 

 

exposeRequestAttributes:默认值false,设置是否所有的request属性在与模板进行合并之前添加到model中。(可以理解为request范围内包含的所有对象,而不是一个真正的Request对象。)

exposeSessionAttributes:默认值false,设置是否所有的session属性在与模板进行合并之前添加到model中。

分享到:
评论

相关推荐

    spring mvc mybatis velocity 示范

    Spring MVC、MyBatis 和 Velocity 是三个在Java Web开发中广泛应用的开源框架。Spring MVC 是Spring框架的一部分,用于构建高效、灵活的Web应用程序。MyBatis 是一个优秀的持久层框架,它支持定制化SQL、存储过程...

    spring mvc与velocity整合

    在Spring MVC的配置文件(如`spring-mvc.xml`)中,你需要配置VelocityViewResolver,这是Spring MVC用来解析Velocity模板的类。设置其prefix和suffix属性,分别指定视图前缀和后缀,例如: ```xml ...

    Spring MVC+Maven+Velocity配置实例

    在Spring的配置文件(如`applicationContext.xml`)中,定义视图解析器,通常使用`InternalResourceViewResolver`,并设置前缀和后缀,使得Spring MVC能够找到Velocity模板。 接下来,配置Velocity。在`web.xml`中...

    spring mvc sitemesh velocity整合

    2. **配置Spring MVC**:在Spring的配置文件中,配置Spring MVC的DispatcherServlet,并设置视图解析器为VelocityViewResolver,指定Velocity模板文件的路径。 3. **配置Sitemesh**:在web.xml中配置Sitemesh的...

    Maven 整合 Spring mvc + Mybatis + Velocity 的实例

    2. **配置Spring MVC**:在src/main/webapp/WEB-INF下创建spring-servlet.xml文件,配置Spring MVC的相关组件,如DispatcherServlet、ViewResolver、Controller等。还可以利用注解配置@Controller和@RequestMapping...

    maven搭建spring mvc velocity+mybatis

    在IT行业中,构建高效、可维护的Web应用是至关重要的,而Maven、Spring MVC、Velocity和MyBatis是实现这一目标的四个关键组件。本文将深入探讨如何使用这些技术来搭建一个完整的Web应用程序。 首先,Maven是Apache...

    Maven + Spring mvc + Mybatis + Velocity 整合实例

    在这个整合实例中,开发者可以学习到如何设置Maven的POM.xml文件来管理所有依赖,如何配置Spring MVC的DispatcherServlet和ApplicationContext,如何定义Mybatis的Mapper接口和XML配置文件,以及如何在Velocity模板...

    Maven + Spring mvc + Mybatis + Velocity +国际化配置 demo

    本示例项目" Maven + Spring MVC + Mybatis + Velocity + 国际化配置 Demo"提供了一种实用的方法来实现这一目标。以下将详细讲解这个整合实例中的各个关键组件及其相互作用。 1. Maven:Maven 是一个项目管理工具,...

    精通Spring MVC4

    配置Spring MVC通常涉及web.xml文件中的DispatcherServlet配置,以及Spring配置文件中定义的Controller、ViewResolver和其他组件。Spring Boot简化了这一过程,通过自动配置和@SpringBootApplication注解可以快速...

    spring mvc

    11. **MVC配置**: 传统的XML配置方式逐渐被Java-based配置和注解配置取代,简化了配置过程,使得Spring MVC应用更易维护。 12. **RESTful风格**: Spring MVC 支持创建RESTful API,通过@RequestMapping配合HTTP动词...

    Spring + Spring MVC + MyBatis + Velocity + MySQL 框架搭建源码

    这是我写的一个Spring + Spring MVC + MyBatis + Velocity + MySQL 框架搭建完整项目,里面包含了所需的全部JAR包已经相关源码,感兴趣的同学可以下载喽。。。 配合我的博客更好哦!

    spring mvc框架源码

    9. **Tiles, FreeMarker, Velocity**: Spring MVC支持多种视图技术,如JSP、Thymeleaf、FreeMarker等,这些技术可以方便地构建动态网页。 10. **RESTful风格的支持**: Spring MVC通过@RequestMapping支持RESTful ...

    Spring MVCSpring MVC基础.ppt

    6. **注解驱动开发**:Spring MVC允许使用注解来简化配置,如`@Controller`、`@RequestMapping`、`@Service`、`@Autowired`等,这些注解可以极大地减少XML配置文件的复杂性,提高代码的可读性和可维护性。...

    Spring mvc指南+Spring mvc入门

    本指南将深入探讨 Spring MVC 的核心概念、配置、控制器、数据绑定、视图解析以及实际应用中的最佳实践。 首先,我们来理解 MVC 设计模式。MVC 将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器...

    spring框架的MVC

    通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring ...

    Spring MVC配置文档及原理介绍

    此外,Spring MVC支持多种视图技术,如JavaServer Pages (JSP)、Velocity模板引擎、Tiles布局管理器等。这一灵活性意味着Spring MVC不会限制开发者必须使用特定的技术栈,而是提供了一个统一的平台来支持不同的视图...

    spring-webmvc5.3.6 jar包.rar

    这个jar文件包含Spring MVC框架相关的所有类。  包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。  当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的...

    Spring3.0MVC 实用教程(高淇)

    通过策略接口,Spring MVC 具有高度可配置性,支持多种视图技术,如 JSP、Velocity、Tiles、iText 和 POI。 Spring MVC 的主要组成部分包括控制器、模型对象、分派器和处理程序对象,这些组件的职责明确,易于定制...

    spring3 mvc+mybatis+velocity+maven

    在"spring3 mvc+mybatis+velocity+maven"项目中,Maven用于管理和构建整个项目,通过在pom.xml文件中声明依赖关系,Maven会自动下载并管理所有必要的库,简化了项目的构建和部署流程。 总结起来,这个项目展示了...

    Spring MVC 配置

    在实际应用中,要配置Spring MVC,首先需要在`web.xml`中配置DispatcherServlet,指定其初始化参数,以及Spring的上下文配置文件位置。例如: ```xml &lt;servlet-name&gt;springmvc &lt;servlet-class&gt;org.spring...

Global site tag (gtag.js) - Google Analytics