Spring3 MVC和Velocity整合配置笔记
博客分类: java总结SpringSpring MVCVelocity
springvelocitymvcjavamail
刚刚尝试用Spring MVC框架来替换Struts2框架,遇到了不少问题,网上的资料相当乱,记录备案一下。
东西有点多,可能会比较乱,整理个目录:
一、引用到的jar包
二、Spring中设置properties资源文件
三、使用注解的准备
四、Spring MVC配置中出现的找不到配置文件的问题
五、velocity和spring mvc的整合
六、velocity和javamail的整合
-----------------------正文------------------------------
一、首先是引用的包,直接给Maven吧
Xml代码
<properties>
<spring.version>3.2.2.RELEASE</spring.version>
</properties>
<dependencies>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.0</version>
</dependency>
<!-- database -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.24</version>
</dependency>
<!-- test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.28</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<!--javamail-->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<!--velocity-->
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.5</version>
</dependency>
</dependencies>
很抱歉一下copy了很长。。。
不过大致就是Spring Core,Spring Context,Spring Context Support,Spring MVC这几个
外加Velocity。javamail因为也用到了所以提一句。
---------------------------------------
二、Spring中设置properties资源文件
Xml代码
<bean id="propertyConfigs" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:datasource.properties</value>
<value>classpath:mailconfig.properties</value>
<value>classpath:site.properties</value>
</list>
</property>
</bean>
随后就可以在配置中使用${}来引用properties里面的值了
博主在这里还遇到一个问题,同时有两个以上的Spring配置文件时似乎会出现问题。首先是appCxt.xml里面配置了但在SpringMVC-servlet.xml里面没配置,SpringMVC-servlet.xml报错,无法解析。把其中的一部分移到SpringMVC-servlet.xml后appCxt也出现了报错。
无奈把所有配置信息写一个文件里了。好在大量使用了注解,因此实际没有特别长。
----------------------------------------------------------
三、使用注解的准备
Xml代码
<context:annotation-config/>
<context:component-scan base-package="cn.yix.blog"/>
后面的是表示要扫描的package
----------------------------------------------------------
四、Spring MVC配置中出现的找不到配置文件的问题
原因:配置web.xml时会给Spring的DispatcherServlet配置一个Servlet
Xml代码
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:appCxt.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
值的注意的是其中的init-param属性,如果不配置的话默认是到WEB-INF目录下寻找${servlet-name}-servlet.xml的配置文件,如果没找到就直接报FileNotFoundException。
解决方案一是创建一个这样的文件,二是像博主这样自定义文件位置。
-----------------------------------------------------------
五、velocity和spring mvc的整合
本篇资料五花八门,但是大多是spring2.5的资料了
配置文件不用多说,首先是velocity的配置信息
Xml代码
<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="WEB-INF/velocity"/>
<property name="velocityProperties">
<props>
<prop key="input.encoding">utf-8</prop>
<prop key="output.encoding">utf-8</prop>
</props>
</property>
</bean>
然后引入ViewResolver
Xml代码
<bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="suffix" value=".vm"/>
<property name="contentType" value="text/html;charset=utf-8"/>
</bean>
要补充的是Spring3 MVC中的Controller大多都是普通类了,我也不喜欢在一个映射方法中添加一堆莫名其妙的参数
实际上Spring支持直接的字符串解析:
Java代码
@Controller
@RequestMapping("/")
public class IndexController {
@RequestMapping("/index.htm")
public String showIndex(){
return "index";
}
}
这里index会直接映射到WEB-INF/velocity/index.vm文件。
注意return字符串中不需要添加.vm字符串
-----------------------------------------------------------
六、velocity和javamail的整合
javamail可以使用velocity作为模板来发送模板邮件
具体在这里已经很清楚了:http://gundumw100.iteye.com/blog/515346
博主在这里要补充的是里面引用的是org.springframework.ui.velocity.VelocityEngineFactoryBean来创建一个VelocityEngine对象。
但是velocity和spring mvc的整合则使用了org.springframework.web.servlet.view.velocity.VelocityConfigurer
我们没必要为了javamail还单独配置一个VelocityEngine方法。
通过阅读源码发现org.springframework.web.servlet.view.velocity.VelocityConfigurer实际有一个getVelocityEngine()方法。
因此我们可以直接把Confirgurer注入到javamail发送类
Java代码
private VelocityEngine velocityEngine;
@Resource(name = "velocityConfigurer")
private void setVelocityConfigurer(VelocityConfigurer velocityConfigurer){
velocityEngine = velocityConfigurer.getVelocityEngine();
}
这个和前面的方法是等效的
--------------------------------------------------------------
其余相关的还有读写session之类,网上资料很全了,可以自行寻找,这里就不赘述了。
分享到:
相关推荐
spring mvc与velocity整合
spring mvc mybatis velocity 示范
赠送jar包:velocity-engine-core-2.3.jar; 赠送原API文档:velocity-engine-core-2.3-javadoc.jar; 赠送源代码:velocity-engine-core-2.3-sources.jar; 赠送Maven依赖信息文件:velocity-engine-core-2.3.pom;...
Spring MVC框架,整合了velocity,这个没有用到Hibernate,下一版本会把集成Hibernate
赠送jar包:velocity-engine-core-2.3.jar 赠送原API文档:velocity-engine-core-2.3-javadoc.jar 赠送源代码:velocity-engine-core-2.3-sources.jar 包含翻译后的API文档:velocity-engine-core-2.3-javadoc-...
赠送jar包:velocity-tools-generic-3.1.jar; 赠送原API文档:velocity-tools-generic-3.1-javadoc.jar; 赠送源代码:velocity-tools-generic-3.1-sources.jar; 赠送Maven依赖信息文件:velocity-tools-generic-...
spring3 mvc mybatis velocity登录功能的简单实现,主要是想用下mybatis和velocity
velocity-engine-core-2.1.jar
这个jar文件包含Spring MVC框架相关的所有类。 包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。 当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的...
Maven + Spring mvc + Mybatis + Velocity 整合实例,之前上传的整合 Demo,修改了一些问题,所以重新上传了一个
Velocity用户手册---中文版.doc
velocity(1.1---1.5所有包) velocity-1.4 velocity-1.5 velocity-dep-1.3.1 velocity-tools-1.1 velocity-tools-generic-1.2 velocity-tools-view-1.2 velocity-tools-view-1.3
赠送jar包:velocity-tools-generic-3.1.jar 赠送原API文档:velocity-tools-generic-3.1-javadoc.jar 赠送源代码:velocity-tools-generic-3.1-sources.jar 包含翻译后的API文档:velocity-tools-generic-3.1-...
Maven 整合 Spring mvc + Mybatis + Velocity 的实例
Spring MVC+Maven+Velocity配置实例
velocity-tools-2.0.jar velocity-tools-2.0.jar velocity-tools-2.0.jar velocity-tools-2.0.jar velocity-tools-2.0.jar
velocity 2.0 包需要的 jar 包 官方下载的,测试过了,可以运行 Demo 网上都有,关键几行代码: // ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "file"); // 按文件加载 // ve.init(); // Template t = ...
SpringMVC3+velocity最简单配置例子,入门级的demo
velocity-tools-view-2.0.jar
还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 velocity-1.5.jar,velocity-1.6.2-dep.jar,velocity-tools-1.3.jar