[ 
https://issues.apache.org/jira/browse/WICKET-6431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16104625#comment-16104625
 ] 

Hendy Irawan commented on WICKET-6431:
--------------------------------------

I should clarify my use case. The stateless link / button that I want to use is 
on a navbar. 

I'd like the navbar itself to be stateless, since the navbar gets used on both 
stateless and stateful pages.
However this doesn't work.

If I use stateless components the navbar won't work on stateful pages.

I'm thinking of explicitly creating two versions of navbar, stateful and 
stateless, but this seems to become a burden to update multiple navbars which 
have same visuals and functionality. I also plan to separate anonymos and user 
navbars, getting total navbars to 4...

Is there another alternative. Or is it really that stateless components are 
never supposed to work in stateful pages? If so, then probably the component 
needs to come with a warning or even exception when used within a stateful 
page... (just like the checker can throw exception when stateful component used 
within stateless page)


> In a stateful Page, Making AjaxButton stateless makes it not working
> --------------------------------------------------------------------
>
>                 Key: WICKET-6431
>                 URL: https://issues.apache.org/jira/browse/WICKET-6431
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 7.8.0
>            Reporter: Hendy Irawan
>         Attachments: wicketbug1.jpg
>
>
> Markup:
> {code:xml}
> <form wicket:id="navbarForm">
>     <button wicket:id="logoutLink0">Keluar</button>
> </form>
> {code}
> Inside a **stateful** Page, This works:
> {code:java}
> final StatelessForm<Void> navbarForm = new StatelessForm<Void>("navbarForm") {
>     @Override
>     protected void onSubmit() {
>         super.onSubmit();
>         log.info("navbarForm onSubmit");
>     }
> };
> navbarForm.add(new AjaxButton("logoutLink0", navbarForm) {
>     @Override
>     protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
>         log.info("Uw");
>         super.onSubmit(target, form);
>         log.info("Aw");
>     }
> });
> {code}
> adding to the AjaxButton makes it not working:
> {code:java}
>     @Override
>     protected boolean getStatelessHint() {
>         return true;
>     }
> {code}
> By "not working" it means directly redirects to this page again, no onSubmit 
> behavior is called (neither for the form nor the button).
> This is the HTTP request that gets sent when (made stateless) button is 
> clicked:
> !wicketbug1.jpg|thumbnail!
> (show should attachment image, Jira bug?)
> So to my mind it seems that the sending page is behaving "correctly" (since 
> it sends the form), but the receiving page is not reacting correctly, and 
> seems to ignore submitted form.
> I observed similar behavior with StatelessLink, but I don't want to conflate 
> issues. This could very well be my own fault.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to