Hello,

It seems method with varargs doesn’t work with property expression. 
If I put the following property expression, I get an error: Message doesn’t 
have a public “format" method. 
${messages.format('priceFromPerGuest', travelMinPricePerGuest, 
displayedCurrency)}
But If I write it as follow is works:
messages.format('priceFromPerGuest', [travelMinPricePerGuest, 
displayedCurrency])

Is this a bug ?

Tapestry property expression is a bit limiting, particularly in conditions 
where you can’t have logical expression as:  test=“size > 10”

I know the rational is to keep property expression as simple as possible, but 
having some logic expressed in the template is not that bad, because it’s in 
context ans sometimes makes more sense than having everything in java code. 

Also if you work a lot with collection of objects, you have to create a 
property for each type of element in the collections, the “var” keyword is not 
powerful to be used in complex property expressions.
Exemple, this won’t work, but it would be very practical:
<t:loop source=“countries” value=“var:country”>
        ${var:country.getName(locale)} - ${getPopulation(var:country)}
</t:loop>

And if you use a generic property tempValue that you could reuse in different 
places, it won’t work because all conduits will be based on the Object Type and 
not Country type. 

@Property
Object tempValue

<t:loop source=“countries” value=“var: tempValue”>
        ${tempValue.getName(locale)} - ${getPopulation(tempValue)}
</t:loop>

Could we find a solution to avoir creating a lot of fields for all loops ?

Thank you for your help, 

Best! 


  <http://www.dfacto.ch/>       Numa Schmeder    www.dfacto.ch  
<http://www.dfacto.ch/>
n...@dfacto.ch <mailto:n...@dfacto.ch>   |   M +41 79 538 30 01 

DIGITAL STRATEGY   |   DESIGN   |   DEVELOPMENT


 

Reply via email to