Hi,
Thank you. I know, I realized I made a typo. It should be:
@Property
Object tempValue
<t:loop source=“countries” value=“tempValue”>
${tempValue.getName(locale)} - ${getPopulation(tempValue)}
</t:loop>
I think var prefix is a great addition, but it should be able to use var in
property expression, and not only as single read write property storage.
Numa
> Le 27 mai 2021 à 09:55, Chris Poulsen <[email protected]> a écrit :
>
> We never really use much of the expression language, so I can't comment on
> that.
>
> This is just a comment on the last example: I'm not sure that you need a
> @Property when using the "var:" prefix (if you have a backing property it
> ought to be a "prop:" binding, as far as I understand)
>
> --
> Chris
>
>
>
> On Wed, May 26, 2021 at 12:00 PM Numa Schmeder <[email protected]
> <mailto:[email protected]>> wrote:
>
>> 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/ <http://www.dfacto.ch/>> Numa Schmeder
>> www.dfacto.ch <http://www.dfacto.ch/> <
>> http://www.dfacto.ch/ <http://www.dfacto.ch/>>
>> [email protected] <mailto:[email protected]> <mailto:[email protected]
>> <mailto:[email protected]>> | M +41 79 538 30 01
>>
>> DIGITAL STRATEGY | DESIGN | DEVELOPMENT