FreeMarker学习使用(2)

没有检索到摘要

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接着上一篇FreeMarker学习使用(1),这次处理模板内有${XXX.XX}的情况。

1.接着使用FreemarkerTest这个项目,在templates下新建模板test.ftl:

<html>
	<head>
		<title>Welcome!</title>
	</head>
	<body>
		<h1>Welcome ${username}!</h1>
		<p>Our latest product:
		<a href="${latestProduct.url}">${latestProduct.name}</a>!
	</body>
</html>
2.很明显我们有两种处理方式,一种是新建一个Map,然后使用root.put()将它put进来,另一种是新建一个bean,该bean包含url和name属性,同时有相应的get方法。

①使用Map:

新建测试类如下:

public class FreemarkerTest2 {
	FreemarkerUtil fu = null;
	Map<String,Object> root = null;
	@Before
	public void init() {
		fu = new FreemarkerUtil();
		root = getHashMapInstance();
	}
	
	@Test
	public void testPrint() {
		root.put("username", "abc");
		Map<String,String> latest = getHashMapInstance();
		latest.put("url", "htmlfile/latestHtml.html");
		latest.put("name", "产品名称");
		root.put("latestProduct", latest);
		fu.print("test.ftl", root);
	}
	
	/**
	 * 生成HashMap的实例对象
	 * @return new HashMap();
	 */
	public <K,V>Map getHashMapInstance() {
		return new HashMap<K,V>();
	}
}
注:只要保证put到root的map的key与模板相同(此处为latestProduct)即可。


②使用Bean:

新建一个Bean:

public class Product {
	private String url;
	private String name;

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}
新建一个测试类:
public class FreemarkerTest3 {
	FreemarkerUtil fu = null;
	Map<String,Object> root = null;
	@Before
	public void init() {
		fu = new FreemarkerUtil();
		root = getHashMapInstance();
	}
	
	@Test
	public void testPrint() {
		root.put("username", "abc");
		Product p = new Product();
		p.setUrl("htmlfile/latestHtml.html");
		p.setName("产品名称");
		root.put("latestProduct", p);
		fu.print("test.ftl", root);
	}
	
	/**
	 * 生成HashMap的实例对象
	 * @return new HashMap();
	 */
	public <K,V>Map getHashMapInstance() {
		return new HashMap<K,V>();
	}
}

代码地址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值