调用不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”是未定义的。这个方法绝对不是来自公共类或接口。