You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Andrea Del Bene (JIRA)" <ji...@apache.org> on 2018/08/09 10:18:00 UTC

[jira] [Closed] (WICKET-6431) In a stateful Page, Making AjaxButton stateless makes it not working

     [ https://issues.apache.org/jira/browse/WICKET-6431?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrea Del Bene closed WICKET-6431.
-----------------------------------
    Resolution: Not A Problem

Hi,

remember that stateless AJAX needs constant marku id in order to properly refresh component, so you can't rely on setOutputMarkupId but you have to manually set a markupId. Keep also in mind that forms are not submit when validation errors occur, so you have to refresh feedback panel with AjaxSubmitLink#onError

> 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
>            Assignee: Andrea Del Bene
>            Priority: Major
>         Attachments: statelessbug.zip, 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
(v7.6.3#76005)