【问题标题】:Wicket feedback message and AjaxButtonWicket 反馈消息和 AjaxButton
【发布时间】:2020-08-10 04:02:28
【问题描述】:

我有一个只包含一个 TextField 和一个按钮的表单。我注意到,如果我根据需要设置文本字段并单击按钮,我会收到相应的反馈消息。

但是,当我有一个 AjaxButton(这是我需要的,因为我需要使用 AjaxRequestTarget 执行回调方法)时,我看不到反馈消息,除非我重新加载。调试的时候发现表单的onSubmit方法被调用了(onError也是),但是AjaxButton的onSubmit方法不是

您建议我怎么做才能看到反馈消息调用回调方法?

        Form<Void> form = new Form<>("form");

        // added the textfield too

        form.add(new AjaxButton("startButton") {
            private static final long serialVersionUID = 1L;

            protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                // some action
                target.add(this);
            }

        });
        add(form);

        <form wicket:id="form">
            <table>
                <tbody>
                    <tr>
                        <!-- some stuff -->
                    </tr>
                    <tr>
                        <td><input type="submit" wicket:id="startButton" class="roundedButton"></input></td>
                    </tr>
                </tbody>
            </table>
        </form>

【问题讨论】:

    标签: java ajax wicket wicket-7


    【解决方案1】:

    我看不到您的整个代码,但您可能需要在触发 onError 时将 FeedbackPanel 添加到 AjaxRequestTarget。

    【讨论】:

    • 谢谢!我的 FeedbackPanel 已添加到父页面。我覆盖了 Form 的 onError,从 Session 中获取了 AjaxRequestTarget 并添加了反馈面板。这行得通,我接受了答案,但我仍然不确定为什么这首先不起作用。
    • 很高兴您解决了这个问题。但是很奇怪,您不能从 AjaxButton 使用 onSubmit/onError。您可以尝试使用 'form.setDefaultButton(ajaxButton)' 将此按钮显式设置为表单提交者,或将表单传递给 AjaxButton 构造函数(使用 'new AjaxButton("startButton", form)')祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    相关资源
    最近更新 更多