当前位置: 代码迷 >> Web前端 >> spring组合velocity的应用实例
  详细解决方案

spring组合velocity的应用实例

热度:538   发布时间:2012-09-03 09:48:39.0
spring结合velocity的应用实例

import?java.util.Map;

import?org.apache.velocity.app.VelocityEngine;
import?org.springframework.ui.velocity.VelocityEngineUtils;

public?class?MsgBean?...{
????
private?VelocityEngine?velocityEngine;

????
private?String?msg;

????
private?Map?model;?//?用来保存velocity中的参数值

????
private?String?encoding;?//?编码

????
private?String?templateLocation;?//?注入的velocity模块

????
public?String?getEncoding()?...{
????????
return?encoding;
????}


????
public?void?setEncoding(String?encoding)?...{
????????
this.encoding?=?encoding;
????}


????
public?String?getTemplateLocation()?...{
????????
return?templateLocation;
????}


????
public?void?setTemplateLocation(String?templateLocation)?...{
????????
this.templateLocation?=?templateLocation;
????}


????
public?Map?getModel()?...{
????????
return?model;
????}


????
public?void?setModel(Map?model)?...{
????????
this.model?=?model;
????}


????
public?String?getMsg()?...{
????????
//?return?title;
????????
//?将参数值注入到模块后的返回值
????????return?VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
????????????????templateLocation,?encoding,?model);

????}


????
public?void?setMsg(String?msg)?...{
????????
this.msg?=?msg;
????}


????
public?VelocityEngine?getVelocityEngine()?...{
????????
return?velocityEngine;
????}


????
public?void?setVelocityEngine(VelocityEngine?velocityEngine)?...{
????????
this.velocityEngine?=?velocityEngine;
????}


}


<?xml?version="1.0"?encoding="UTF-8"?>
<beans?xmlns="http://www.springframework.org/schema/beans"
???????xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
???????xsi:schemaLocation
="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

?

????
?
<bean?id="velocityEngine"?class="org.springframework.ui.velocity.VelocityEngineFactoryBean">??
???
<property?name="resourceLoaderPath">
????????????
<value>classpath:velocity</value>
?????
</property>
????
<property?name="velocityProperties">
?????????????????
<props>
???????????????????????
<prop?key="resource.loader">class</prop>
???????????????????????
<prop?key="class.resource.loader.class">
?????????????????????????????org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
???????????????????????
</prop>
???????????????????????
<prop?key="velocimacro.library"></prop>
???????????????????????
<prop?key="input.encoding">GBK</prop>
???????????????????????
<prop?key="output.encoding">GBK</prop>
???????????????????????
<prop?key="default.contentType">text/html;?charset=GBK</prop>
?????????????????
</props>
???????????
</property>
</bean>

<bean?id="msgBean"?class="MsgBean">
????????
<property?name="templateLocation"?value="test.vm"></property>
????????
<property?name="encoding"?value="GBK"></property>
????????
<property?name="velocityEngine"?ref="velocityEngine"></property>
</bean>


</beans>

import?java.io.File;
import?java.io.IOException;
import?java.util.HashMap;
import?java.util.Map;

import?org.apache.commons.io.FileUtils;
import?org.springframework.context.ApplicationContext;
import?org.springframework.context.support.ClassPathXmlApplicationContext;


public?class?TestVeloctiy?...{
????
public?static?void?main(String[]?args)?...{
????????
//?TODO?Auto-generated?method?stub
????????ApplicationContext?ctx=new?ClassPathXmlApplicationContext("test3.xml");
????????MsgBean????msgBean
=((MsgBean)ctx.getBean("msgBean"));
????????Map
<String,?String>?data?=?new?HashMap<String,?String>();
????????data.put(
"me","yourname");
????????msgBean.setModel(data);
????????System.out.println(msgBean.getMsg());
????????
?????????
????????
//根据apache?common?IO?组件直接将内容写到一个文件中去.?
?????????File?dest?=?new?File(?"test.html"?);??????????
??????????
try?...{
????????????FileUtils.writeStringToFile(?dest,?msgBean.getMsg(),?
"GBK"?);
????????}
?catch?(IOException?e)?...{
????????????
//?TODO?Auto-generated?catch?block
????????????e.printStackTrace();
????????}


????}

}


  相关解决方案