a) You don't need to copy the value from the parameter to the property.
b) There is no need to persist it.
@Parameter
@Property
private String usage;
<t:block t:id="refreshBlock">
${usage}
</t:block>
2009/3/26 ahingsaka samsenesena <[email protected]>
> Hi,
>
> I'm trying to use my own component inside a loop and I have a problem
> when there is a "persist" annotation on attributes.
>
> I want to loop with my component named "test" in a page like this :
>
> <t:zone t:id="refreshZone"/>
>
> <t:loop source="0..2" value="testId">
> <t:test usage="${usage}"/>
> </t:loop>
>
> The component contains a string attribute "usageValue" that will be
> displayed in the refreshZone.
> This attribute comes from the parameter "usage". I put my value on the
> setupRender method.
>
> The class of the component is like this :
> public class Test {
>
> @Parameter
> private String usage;
>
> @Persist
> @Property
> private String usageValue;
>
> @Inject
> private Block refreshBlock;
>
> boolean setupRender(MarkupWriter writer) {
> this.usageValue = usage;
> return true;
> }
>
> Object onActionFromClick() {
> return refreshBlock;
> }
> }
>
> And the tml :
> <t:block t:id="refreshBlock">
> ${usageValue}
> </t:block>
>
> <t:actionlink t:id="click" t:zone="refreshZone">Click
> me</t:actionlink><br/>
>
> The controller of the page is quite simple and returns an usage for a
> given number
> public class ContentTest {
>
> @Property
> private int testId;
>
> public String getUsage() {
> if (testId == 0) {
> return "pix";
> } else if (testId == 1) {
> return "zoom";
> } else if (testId == 2) {
> return "thumb";
> } else
> return "";
>
> }
> }
>
> Here is the problem : when I click on the link, the value displayed is
> always "thumb" !
> I should have "pix" displayed with the first link, "zoom" with the
> second ...
>
> I tried to put an id, but the behaviour is the same :
> <t:loop source="0..2" value="testId">
> <t:test t:id="testId" usage="${usage}"/>
> </t:loop>
>
> And if I don't use the loop, there is no problem :
> <t:zone t:id="refreshZone"/>
> <t:test usage="literal:pix">
> </t:test>
> <t:test usage="literal:zoom">
> </t:test>
> <t:test usage="literal:thumb">
> </t:test>
>
> If I use these lines, i have the right behaviour.
>
> What's going on ?
>
> Ahingsaka SAMSENESENA
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>