Freemark在Spring+Struts2中使用

1.读取freemarker模板生成的文件
 配置文件:
    <!-- freemarker模板 -->
    <bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> 
        <property name="templateLoaderPath" value="classpath:template" /> 
        <property name="freemarkerSettings"> 
            <props> 
                <prop key="template_update_delay">0</prop> 
                <prop key="default_encoding">UTF-8</prop> 
                <prop key="locale">zh_CN</prop> 
            </props> 
        </property> 
    </bean> 

java代码:

private FreeMarkerConfigurer freeMarkerConfigurer;
    public FreeMarkerConfigurer getFreeMarkerConfigurer() {
		return freeMarkerConfigurer;
    }

    public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) {
		this.freeMarkerConfigurer = freeMarkerConfigurer;
    }

    private String getXmlBody(User user){
	String xmlBody = null;
	try{
		Template tpl = freeMarkerConfigurer.getConfiguration().getTemplate("template.ftl");
		Map<String,String> map = new HashMap<String,String>();
		map.put("cellphone", user.getCellphone());
		String state = user.getState();
		map.put("state",state);
		xmlBody = FreeMarkerTemplateUtils.processTemplateIntoString(tpl,map);
	}
	catch(Exception e){
		e.printStackTrace();
	}
	return xmlBody;
    }



 template.ftl

<?xml version="1.0" encoding="UTF-8"?>
<req ver="1.0"><isdn>${cellphone}</isdn><optType>${state}</optType></req>
2.输出freemarker模板生成的文件
<action name="xxx" class="XXXAction">
	<result name="ftl" type="freemarker">
	       <param name="location">/WEB-INF/classes/template/xml.ftl</param>
	       <param name="contentType">application/xml</param>
        </result>
</action>

xml.ftl

<?xml version="1.0" encoding="UTF-8"?>
   <resp ver="1.0">
       <${cxr.opt_name} ver="1.0">
           <result resid="${cxr.result_type}" message="${cxr.message}">
             <#list cxr.rlist as user><user><msisdn>${user.msisdn}</msisdn><cmsisdn>${user.cxyw_msisdn}</cmsisdn></user></#list>
           </result>
        </${cxr.opt_name}>
   </resp>




 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值