setVisible(true)在页面刷新之前不显示

not*_*nce 1 java wicket

我有我要显示的字符串变量

final String wrongPw = "Wrong Password";

我的AJAX是按钮:

AjaxButton yesButton = new AjaxButton("yesButton", yesNoForm) {
        private static final long serialVersionUID = -3827487963204274386L;
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form form) {
            if (target != null && password.equals(getPw())) {
                answer.setAnswer(true);
                modalWindow.close(target);
            }else if(target != null && !password.equals(getPw())){
                answer.setAnswer(false);
                wrongPW.setVisible(true);
            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

再向下:

wrongPW.setVisible(false);
add(wrongPW);
Run Code Online (Sandbox Code Playgroud)

当我按下是按钮时,我必须刷新页面wrongPW才能显示.

怎么能动态完成?

thg*_*thg 5

您必须将要更新的组件添加到目标,如下所示:

target.add(wrongPW);
Run Code Online (Sandbox Code Playgroud)

确保在要动态更改可见性的组件的初始化时设置标记占位符标记,否则Wicket将找不到它.

wrongPW.setOutputMarkupPlaceholderTag(true);
Run Code Online (Sandbox Code Playgroud)

解释原因如下:https://stackoverflow.com/a/9671796/2795423