gpt4 book ai didi

java - 如何从渲染的 h :outputText? 将参数传递给方法

转载 作者:太空宇宙 更新时间:2023-11-04 08:21:35 25 4
gpt4 key购买 nike

我正在显示来自 SQL 查询的数据表,并希望根据此 SQL 查询中的一个字段值呈现一段代码。

查看:records.xthml

<table>
<thead>
<tr>
<td>#{messages['table.header.id']}</td>
<td>#{messages['table.header.name']}</td>
<td>#{messages['table.header.date.added']}</td>
<td>&nbsp;</td>
</tr>
</thead>
<tbody>
<a4j:repeat value="recordListBean.records" var="listedRecord" rowKeyVar="index">
<tr>
<td><h:outputText value="#{listedRecord.id}</td>
<td><h:outputText value="#{listedRecord.name}</td>
<td>
<h:outputText value="#{listedRecord.dateAdded}" rendered="#{viewRecordBean.currentRecord(listedRecord.id)}" />
<h:outputText value="#{messages['table.header.record.archived']}" rendered="!#{viewRecordBean.currentRecord(listedRecord.id)}" />
</td>
</tr>
</a4j:repeat>
</tbody>
</table>

Controller :ViewListBean.java

public boolean currentRecord(Long recordId) {
Long maxRecordId = 10;
if (recordId <= maxRecordId) {
return true;
} else {
return false;
}
}

有问题的两行records.xhtml代码是:

<h:outputText value="#{listedRecord.candidate}" rendered="#{viewRecordBean.currentRecord(listedRecord.id)}" />
<h:outputText value="#{messages['table.header.record.archived']}" rendered="#{!viewRecordBean.currentRecord(listedRecord.id)}" />

我希望能够在渲染的检查中传递一个参数并返回一个 boolean 值来渲染或不渲染。假设此 sql 查询返回 20 条记录。如果当前行的recordId值小于或等于10,则返回true,并显示listedRecord.dateAdded字段。否则它将返回 false 并显示单词 Archived

这是将参数从 JSF 生成的 XHTML 页面传递到控制 bean 方法的正确方法吗?

有更好或更有效的方法吗?

最佳答案

你只有一个错误:!必须进入 EL 表达式内部。

即这是无效的:

rendered="!#{viewRecordBean.currentRecord(listedRecord.id)}" 

应该是:

rendered="#{!viewRecordBean.currentRecord(listedRecord.id)}" 

对于剩余部分,它看起来应该可以正常工作,假设您的环境支持 EL 2.2。我只会使用 <h:dataTable>因为这消除了 HTML 样板。

关于java - 如何从渲染的 h :outputText? 将参数传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9436088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com