I need to know how I can post a form to a new window using an AjaxSubmitLink.  
I have a small page where a user can make a few setting changes and then either 
save those settings (using an AjaxButton) or preview those settings (using an 
AjaxSubmitLink) in a new window.  The problem is, I can't figure out how to 
make the preview button open in a new window.  Since there are no popup 
settings for an AjaxSubmitLink, I'm not sure what to do.

I've tried searching for a solution and the best I could find indicated that I 
should use a form target="_blank".  But that doesn't seem to change anything.  
The call to setResponsePage always results in the preview page opening in the 
same browser window.

Below is the code for my submit and preview buttons:

        AjaxButton submit = new AjaxButton("websiteSetting-submit-button") {

            @Override
            protected void onError(AjaxRequestTarget target, Form<?> form) {
                super.onError(target, form);
                feedbackPanel.add(new AttributeModifier("style", true, new 
Model("color:red;")));
                target.addComponent(feedbackPanel);
                target.addComponent(form);
            }

            @Override
            protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                processSubmission(target, form, false);
            }

            //Prepending the call to set the target to nothing for normal form 
submission.
            @Override
            protected IAjaxCallDecorator getAjaxCallDecorator() {
                return new 
AjaxPreprocessingCallDecorator(super.getAjaxCallDecorator()) {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public CharSequence preDecorateScript(CharSequence script) {
                        String sJs = "document.getElementById('" + 
form.getMarkupId() + "').target = '';";

                        return sJs + script;
                    }
                };
            }
        };

        AjaxSubmitLink preview = new 
AjaxSubmitLink("websiteSetting-preview-button") {

            @Override
            protected void onError(AjaxRequestTarget target, Form<?> form) {
                super.onError(target, form);
                feedbackPanel.add(new AttributeModifier("style", true, new 
Model("color:red;")));
                target.addComponent(feedbackPanel);
                target.addComponent(form);
            }

            @Override
            protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                setResponsePage(HomePage.class);
            }

            //Prepending the call to set the target to "_blank" for preview 
submission to new window.
            @Override
            protected IAjaxCallDecorator getAjaxCallDecorator() {
                return new 
AjaxPreprocessingCallDecorator(super.getAjaxCallDecorator()) {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public CharSequence preDecorateScript(CharSequence script) {
                        String sJs = "document.getElementById('" + 
form.getMarkupId() + "').target = '_blank';alert(document.getElementById('" + 
form.getMarkupId() + "').target);";

                        return sJs + script;
                    }
                };
            }
        };

Thanks,
Jeff

* This e-mail and any files transmitted with it may contain confidential and/or 
privileged information and intended solely for the use of the individual or 
entity to whom they are addressed. If you are not the addressee or authorized 
to receive this for the addressee, you must not use, copy, disclose, or take 
any action based on this message or any information herein. If you have 
received this message in error, please advise the sender immediately by reply 
e-mail and delete this message.

Reply via email to