2012-07-26 78 views
2

在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屬性命名約定?

回答

2

您應該能夠在模板中執行obj.generateUserToken()。請注意0​​;沒有,你只是得到的方法,但不要稱之爲。但是你的情況還有一些其他問題,因爲它說「generateUserToken」是未定義的。這個方法絕對不是來自公共類或接口。

相關問題