我用freeMarker生产静态html,用了ftl模板来实现,hello.ftl里面就写了$(user),java代码里面下了下面的
Map<String,Object> data = new HashMap<String,Object>() ;
data.put("user", "abc") ;可以做成功。
我把"abc"换成一个对象,例如user对象,有name、password等属性。heool.ftl里面就写了${user.name} ${user.password},java代码写了data.put("user",oneUser) ;
结果出不来。是不是在freeMarker的Map中不能传自定义对象啊,有高手帮小弟解决下。
Map<String,Object> data = new HashMap<String,Object>() ;
data.put("user", "abc") ;可以做成功。
我把"abc"换成一个对象,例如user对象,有name、password等属性。heool.ftl里面就写了${user.name} ${user.password},java代码写了data.put("user",oneUser) ;
结果出不来。是不是在freeMarker的Map中不能传自定义对象啊,有高手帮小弟解决下。
是完全可以的.${user.name}或者${user["name"]}
<#if links?size != 0>
<div>
<strong>友情链接:</strong>
<#list links as link>
<a href="${link.hrefAddress}" target="_blank" title="${link.bannerName}">${link.bannerName}</a>
</#list>
</div>
<#else>
</#if>
public void staticHTML() throws Exception {
BannerBusiness bb = new BannerBusiness() ;
List list = bb.selectAllBannerBusiness() ;
for(int i=0 ;i<list.size();i++){
System.out.println(list.get(i));
}
// Banner oneBanner = new Banner();
// oneBanner.setHrefAddress("http://www.baidu.com") ;
// oneBanner.setBannerName("fdsafsd") ;
//
Map<String,Object> data = new HashMap<String,Object>() ;
data.put("links", list) ;
// data.put("user", "taoyu") ;
fm.createHTML(ServletActionContext.getServletContext(), data, "template.ftl", "aa.html") ;
}
外加List <T> 原型擦除T,变成限制类型,没有指定就默认是Object类型,没有必要刻意指定。