配置过程中走了一些弯路 ... 将代码留下,备案.
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 是三个在Java Web开发中广泛应用的开源框架。Spring MVC 是Spring框架的一部分,用于构建高效、灵活的Web应用程序。MyBatis 是一个优秀的持久层框架,它支持定制化SQL、存储过程...
在Spring MVC的配置文件(如`spring-mvc.xml`)中,你需要配置VelocityViewResolver,这是Spring MVC用来解析Velocity模板的类。设置其prefix和suffix属性,分别指定视图前缀和后缀,例如: ```xml ...
在Spring的配置文件(如`applicationContext.xml`)中,定义视图解析器,通常使用`InternalResourceViewResolver`,并设置前缀和后缀,使得Spring MVC能够找到Velocity模板。 接下来,配置Velocity。在`web.xml`中...
2. **配置Spring MVC**:在Spring的配置文件中,配置Spring MVC的DispatcherServlet,并设置视图解析器为VelocityViewResolver,指定Velocity模板文件的路径。 3. **配置Sitemesh**:在web.xml中配置Sitemesh的...
2. **配置Spring MVC**:在src/main/webapp/WEB-INF下创建spring-servlet.xml文件,配置Spring MVC的相关组件,如DispatcherServlet、ViewResolver、Controller等。还可以利用注解配置@Controller和@RequestMapping...
在IT行业中,构建高效、可维护的Web应用是至关重要的,而Maven、Spring MVC、Velocity和MyBatis是实现这一目标的四个关键组件。本文将深入探讨如何使用这些技术来搭建一个完整的Web应用程序。 首先,Maven是Apache...
在这个整合实例中,开发者可以学习到如何设置Maven的POM.xml文件来管理所有依赖,如何配置Spring MVC的DispatcherServlet和ApplicationContext,如何定义Mybatis的Mapper接口和XML配置文件,以及如何在Velocity模板...
本示例项目" Maven + Spring MVC + Mybatis + Velocity + 国际化配置 Demo"提供了一种实用的方法来实现这一目标。以下将详细讲解这个整合实例中的各个关键组件及其相互作用。 1. Maven:Maven 是一个项目管理工具,...
配置Spring MVC通常涉及web.xml文件中的DispatcherServlet配置,以及Spring配置文件中定义的Controller、ViewResolver和其他组件。Spring Boot简化了这一过程,通过自动配置和@SpringBootApplication注解可以快速...
11. **MVC配置**: 传统的XML配置方式逐渐被Java-based配置和注解配置取代,简化了配置过程,使得Spring MVC应用更易维护。 12. **RESTful风格**: Spring MVC 支持创建RESTful API,通过@RequestMapping配合HTTP动词...
这是我写的一个Spring + Spring MVC + MyBatis + Velocity + MySQL 框架搭建完整项目,里面包含了所需的全部JAR包已经相关源码,感兴趣的同学可以下载喽。。。 配合我的博客更好哦!
9. **Tiles, FreeMarker, Velocity**: Spring MVC支持多种视图技术,如JSP、Thymeleaf、FreeMarker等,这些技术可以方便地构建动态网页。 10. **RESTful风格的支持**: Spring MVC通过@RequestMapping支持RESTful ...
6. **注解驱动开发**:Spring MVC允许使用注解来简化配置,如`@Controller`、`@RequestMapping`、`@Service`、`@Autowired`等,这些注解可以极大地减少XML配置文件的复杂性,提高代码的可读性和可维护性。...
本指南将深入探讨 Spring MVC 的核心概念、配置、控制器、数据绑定、视图解析以及实际应用中的最佳实践。 首先,我们来理解 MVC 设计模式。MVC 将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器...
通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring ...
此外,Spring MVC支持多种视图技术,如JavaServer Pages (JSP)、Velocity模板引擎、Tiles布局管理器等。这一灵活性意味着Spring MVC不会限制开发者必须使用特定的技术栈,而是提供了一个统一的平台来支持不同的视图...
这个jar文件包含Spring MVC框架相关的所有类。 包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。 当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的...
通过策略接口,Spring MVC 具有高度可配置性,支持多种视图技术,如 JSP、Velocity、Tiles、iText 和 POI。 Spring MVC 的主要组成部分包括控制器、模型对象、分派器和处理程序对象,这些组件的职责明确,易于定制...
在"spring3 mvc+mybatis+velocity+maven"项目中,Maven用于管理和构建整个项目,通过在pom.xml文件中声明依赖关系,Maven会自动下载并管理所有必要的库,简化了项目的构建和部署流程。 总结起来,这个项目展示了...
在实际应用中,要配置Spring MVC,首先需要在`web.xml`中配置DispatcherServlet,指定其初始化参数,以及Spring的上下文配置文件位置。例如: ```xml <servlet-name>springmvc <servlet-class>org.spring...