在 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 在 user_page.ftl 的第 63 行第 36 列未定义。
这是否意味着 Freemarker 访问的所有方法(使用默认的 BeanWrapper)都必须符合 bean 属性命名约定?