我在类中的容器内添加了一个标签,然后将其设置为不可行,我有一个包含 if 语句的 onSubmit 方法。现在,当标签击中一个标签时,标签应该在此处可见。然而它没有出现。
private Component errorMessage;
@Override
protected void onInitialize() {
super.onInitialize();
WebMarkupContainer cnt = new WebMarkupContainer("cnt");
cnt.setOutputMarkupId(true);
errorMessage = new Label("errorMessageData", "Can not enter a weekend
Date, Please enter a weekday").setOutputMarkupId(true);
cnt.add(errorMessage);
errorMessage.setVisible(false);
add(cnt);
public InputForm(String id, final WebMarkupContainer cnt) {
IndicatingAjaxSubmitLink submitMcb = new IndicatingAjaxSubmitLink("submit") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
if (!DateUtilities.isWorkDay(mcEntity.getCorrectionDate())) {
errorMessage.setVisible(true);
return;
}
}
为了便于阅读,我缩短了代码并删除了相关部分。如果我不将其设置为 false,则标签会在正确的位置正确显示,但在 if 语句中将其设置为 false 不会将其删除。我缺少什么?
最佳答案
除了 @Joachim Rohde 所说的之外,您还需要将 errorMessage.setOutputMarkupId(true);
替换为 errorMessage.setOutputMarkupPlaceholderTag(true);
因为您从一个不可见的开始状态。
关于java - 标签设置为可见不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54923090/