title: Calling a non-bean property method in FreeMarker
body: <p>In Freemarker we typically do stuff like this..</p>
  
  <pre><code>class User{
  private String name;
  
  public String getName()...
  
  pubilc void setName(String name)....
  
  }
  </code></pre>
  
  <p>Then our Freemarker code calls the property name like this...</p>
  
  <pre><code>&lt;strong&gt;Hello ${user.name}&lt;/strong&gt;
  </code></pre>
  
  <p>How about if we want to call a method in user called "generateUserToken" like this?</p>
  
  <pre><code>class User{
  private String name;
  
  public String getName()...
  
  public void setName(String name)....
  
  public String generateUserToken(){
    return "Hello World";
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Now if I try to call the Freemarker code like this I get an error...</p>
  
  <pre><code>&lt;a style="font-size: 20px" href="${obj.generateUserToken}"&gt;VIEW USER&lt;/a&gt;
  </code></pre>
  
  <blockquote>
    <p>Caused by: freemarker.core.InvalidReferenceException: Expression
    obj.generateUserToken is undefined on line 63, column 36 in
    user_page.ftl.</p>
  </blockquote>
  
  <p>Does this mean all methods Freemarker accesses (using the default BeanWrapper) must conform to bean property naming conventions?</p>