Я отображаю таблицу данных из запроса 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> </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>
Контроллер: 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)}" />
Я хочу иметь возможность передавать аргумент в проверенной проверке и возвращать логическое значение для визуализации или нет. Допустим, в этом SQL-запросе возвращено 20 записей. Если значение recordId
текущей строки меньше или равно 10, оно вернет true и отобразится поле listedRecord.dateAdded
. В противном случае он вернет false и будет отображено слово Archived
.
Это правильный способ передачи аргумента из сгенерированной JSF страницы XHTML в метод управляющего компонента?
Есть ли лучший или более эффективный способ сделать это?