On Tue, May 20, 2014 at 11:09 PM, Thiago H de Paula Figueiredo <
thiag...@gmail.com> wrote:

> On Tue, 20 May 2014 14:45:48 -0300, Ilya Obshadko <ilya.obsha...@gmail.com>
> wrote:
>
>  Yes, this is it. I have a component which is looped over.
>>
>> class MyComponent {
>>    @Parameter
>>    private MyObject obj; // assigned inside a loop
>>
>>    void onSelectedFromSubmitControl ( ... ) {
>>    }
>> }
>>
>> 1) initially I tried to simply use MyObject instance passed as a parameter
>> inside AjaxFormLoop;
>>
>
> This won't work if you don't pass it as the context of Submit. Submit
> passes to the event handler the context it receives, without any guessing.
>
>  2) then, I tried to pass this instance as context., getting the
>> same results
>>
>
> This will only work if you contribute a ValueEncoder for MyObject.
>
>
>  3) finally, I tried to use obj.id as a context parameter instead - again,
>> onSelectedFromSubmitControl was being called with context parameter
>> belonging to the last iteration of the outside loop
>>
>
> Outside loop? So there's nested loops?


There's only one loop. By 'outside' I meant 'enclosing'.

At this point I gave up and solved the problem otherwise, without having to
>
>> rely on t:submit context.
>>
>> I guess I understand your point, but t:submit does not encode context
>> inside submission URL (unlike t:actionlink or t:eventlink). Probably
>> that's
>> the reason why my initial approach didn't work.
>>
>
> If you're correct, and I haven't done any testing to know if you do, then
> it's a bug. Have you tried, in a separate page, something similar but
> simple enough to reproduce the problem?


No, I didn't.

In fact, when t:submit is being used inside a loop and IS NOT ENCLOSED BY
>> OTHER COMPONENT, this scheme works.
>>
>
> It shouldn't make any difference (not being enclosed by other component).
> It may indicate an error in your part. It may be a bug in Submit. Looking
> at the source (5.1, unfortunately I'm working on projects still using that
> version), it seems to be a problem in Submit, but I won't be sure until I
> run or see an example.


The code I'm working on is not open source. I could create some private
gists, if that works for you. Let me know.


>
>  For example, in the same application I have constructs like:
>>
>> <t:ajaxformloop>
>>   <t:submit t:id="someId" p:context="loopContext"/>
>> </t:ajaxformloop>
>>
>
> I'm not sure the p: prefix is actually valid here. t: is the one usually
> used for non-block parameters, while p: is used for block ones.


Never had any problem with p: prefix actually.


-- 
Ilya Obshadko

Reply via email to