[
https://issues.apache.org/jira/browse/WICKET-6431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16104283#comment-16104283
]
Hendy Irawan commented on WICKET-6431:
--------------------------------------
I think kind of have a hunch why this happens.
It starts because the page always increases its page ID on every request (I
don't know why yet).
So I believe that stateless component works by creating a new page instance,
doing the action, then disposing the page. But that in a stateless page.
In a stateful page, I think it does it by comparing the current instance vs a
new instance. if the current instance is "different" (as in my case) then it
does not execute the action, and prefers to just render the page, and let the
user redo the action again. probably my assumption is wrong. but in practice
the user is forced to repeat the action.
> 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)