views:

1505

answers:

3

Is it possible to call a method that takes parameters from a Freemarker template?

I have an object model that I'm trying to render with Freemarker into a web page. One of the objects has a method to get a sublist of it's contents - taking a parameter that is used to filter the list:

public List getunits(final String type);

I know in JSP you can't do this directly, but you can write custom functions that will allow you to achieve the result you want. How do you solve this in Freemarker? Is it the same with writing custom functions? Or is there some way of actually calling this kind of function?

A: 

FAQ FreeMaker

adatapost
+1  A: 

FreeMarker allows invoking methods that were made available through the model from within expressions.

Assuming your object has been exposed as myBean you can invoke the method as follows:

<#list myBean.getunits("myType") as unit>
  do stuff with ${unit}
</#list>

You don't have to use <list>, of course, it's just there as an example since your method returns a list.

ChssPly76
A: 

hi

i have similar problem. i need to call almost same java method but parameter is anothher object from freemarker model.

<#list ListOfObjects as object> ${anotherObjet.method(object)}

method returns string. But it always throws type mismatch exception.

Sleep