java - 标签设置为可见不显示
问题描述
我在我的类的容器内添加了一个标签,然后将其设置为不可行,我有一个包含 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);
因为你从一个不可见的状态开始。
推荐阅读
- javascript - node.js 中的并发命令和反应应用程序中的错误?
- java - 为什么 Hibernate/JPA 在查询中报告空指针异常?
- c# - 如何在 Visual Studio (C#) 中实例化 ISymbolScope 以访问其方法
- angular - Ngclass 没有更新 UI 中的类
- azure - 云'AzureCloud'中不存在xxx'的订阅
- reactjs - 如何使用 React 中的按钮传递 ID?
- gcc - GCC - 手动切换每个指令集而不使用 March 一次切换多个指令集?
- python - 在远程节点执行 bash 脚本并从服务器通过 python 控制
- awk - 使用 Awk 对文本文件进行重复数据删除,但保留非空字段的行
- python - 图形实现问题是 Python