调用不bean属性方法的FreeMarker
问题描述:
在Freemarker的,我们通常做这样的东西..调用不bean属性方法的FreeMarker
class User{
private String name;
public String getName()...
pubilc void setName(String name)....
}
然后我们Freemarker的代码调用属性名像这样...
<strong>Hello ${user.name}</strong>
如何关于如果我们想要像这样调用一个名为“generateUserToken”的用户方法?
class User{
private String name;
public String getName()...
public void setName(String name)....
public String generateUserToken(){
return "Hello World";
}
}
现在,如果我尝试调用Freemarker的代码,这样我得到一个错误......
<a style="font-size: 20px" href="${obj.generateUserToken}">VIEW USER</a>
造成的:freemarker.core.InvalidReferenceException:表达 obj.generateUserToken在第63行,第36列 user_page.ftl中未定义。
这是否意味着Freemarker访问(使用默认BeanWrapper)的所有方法都必须符合bean属性命名约定?
答
您应该能够在模板中执行obj.generateUserToken()
。请注意0;没有,你只是得到的方法,但不要称之为。但是你的情况还有一些其他问题,因为它说“generateUserToken”是未定义的。这个方法绝对不是来自公共类或接口。