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

ASF subversion and git services commented on WICKET-6006:
---------------------------------------------------------

Commit abd958d4eb128056bc7e57ab943dfc69c23b3925 in wicket's branch 
refs/heads/master from [~mgrigorov]
[ https://git-wip-us.apache.org/repos/asf?p=wicket.git;h=abd958d ]

WICKET-6050 Wicket Ajax (Wicket.From.serializeElement) causes 400 bad request
WICKET-5948 wicket-ajax.js probably doesn't traverse the children of <div> or 
<span>
WICKET-6006 ModalWindow.closeCurrent() causes 414 status error

Introduce AjaxRequestAttributes#serializeRecursively with default value 'false'.
This is a flag indicating whether to collect (submit) the name/value pairs for 
all HTML form elements children of the HTML element with the JavaScript listener


> ModalWindow.closeCurrent() causes 414 status error
> --------------------------------------------------
>
>                 Key: WICKET-6006
>                 URL: https://issues.apache.org/jira/browse/WICKET-6006
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-extensions
>    Affects Versions: 6.20.0, 7.0.0
>            Reporter: Martijn Dashorst
>            Assignee: Martin Grigorov
>            Priority: Minor
>             Fix For: 7.2.0, 8.0.0-M1, 6.22.0
>
>         Attachments: WICKET-5948.7z
>
>
> When you have a panel inside a modal window, and the panel contains a form 
> with e.g. a textarea, and you fill the textarea with about 10k of text, when 
> the modal window is closed using closeCurrent() you get a 414 status error 
> stating that the URL is too long (depends on the backend server).
> {code}
>       public ModalPanel1(String id)
>       {
>               super(id);
>               Form<?> form = new Form<>("form");
>               add(form);
>               add(new AjaxLink<Void>("closeCancel") {
>                       @Override
>                       public void onClick(AjaxRequestTarget target) {
>                               ModalWindow.closeCurrent(target);
>                       }
>               });
>               StringBuilder sb = new StringBuilder();
>               for (int i = 0; i < 10000; i++)
>                       sb.append("a");
>               form.add(new TextArea<>("bigFingTextField", 
> Model.of(sb.toString())));
>       }
> {code}
> Closing the window using ModalWindow.closeCurrent() will add the 
> serializedForm of the modal window's contents (See line 656 of 
> wicket-ajax-debug.js) to the URL that's sent to wicket. If the form inside 
> the panel contains lots of data, this will exceed the maximum URL length...
> https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js#L656
> The workaround is of course to use 
> ModalWindow#close(IPartialPageRequestHandler) instead, however, why is 
> ModalWindow#closeCurrent() even there, and why doesn't it properly close the 
> window with the same behavior as the instance method?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to