jsf - 使用 h:message 警告创建输入表
问题描述
我正在尝试在 JSF 中创建一个包含多行输入的表。每行都是它自己的显示类,并具有显示数据所需的属性。但是,我需要在每个输入上都有验证器消息,并且我无法弄清楚如何获取输入的 id 以传递给“for=”属性中的消息。如果我使用静态 ID,它会引发整个列的错误。
我尝试使用函数或字符串连接动态创建 ID,但它会引发错误,即消息组件找不到要附加“for=”的组件。
我知道 dataTable 也是一种选择,但我也没有看到在那里获取 id 的方法。我是 JSF 的新手,所以我觉得我一定错过了一些简单的东西。我看到一篇关于抓取 NamedContainer ids 的帖子,但我不知道这是否适用于循环。
<table>
<tbody>
<ui:repeat value="#{listOfItems}" var="item">
<tr>
<td>
<h:outputLabel for="#{mainInputId}" <-!This id-->
value="label name"/>
<h:message for=#{mainInputId} />
<h:inputText id="#{mainInputId}"
validator="#{backingBean.validateInput}"
valueChangeListener="#{backingBean.inputChanged}"
value="#{item.inputValue}"
label="input label"
converterMessage="converter message">
</h:inputText>
</td>
<td>
<h:outputLabel for="#{secondInputId}"
value="label name"/>
<h:message for=#{secondInputId} />
<h:inputText id="#{secondInputId}"
validator="#{backingBean.validateInput}"
valueChangeListener="#{backingBean.inputChanged}"
value="#{item.secondInputValue}"
label="input label 2"
converterMessage="converter message">
</h:inputText>
</td>
</tr>
</ui:repeat>
</tbody>
<table>
解决方案
推荐阅读
- ios - Swift 测试中的 @testable 导入问题
- rjags - 如何在 rjags 中为非负因子载荷指定尖峰和平板先验
- gcc - 如果我使用 AVX 指令编译代码,然后在没有 AVX 扩展的 CPU 上运行代码,会发生什么情况?
- informatica - 从 Informatica 生成 json 时从 json 文件中删除了链接
- javascript - 忽略 webpack 中一些已安装的包
- android - 如何折叠/分组博览会通知
- r - 如何将预测的 X 轴修改为日期?
- firebase - 参数类型“用户”不能分配给参数类型“未来”
'.? - javascript - php数据的莫里斯图表刷新问题
- python - Dash 引导组件填充