Java 如何从呈现的h:outputText将参数传递给方法?
我正在显示一个sql查询中的数据表,并希望根据此sql查询中的一个字段值呈现一段代码 视图:records.xthmlJava 如何从呈现的h:outputText将参数传递给方法?,java,jsf,richfaces,el,ajax4jsf,Java,Jsf,Richfaces,El,Ajax4jsf,我正在显示一个sql查询中的数据表,并希望根据此sql查询中的一个字段值呈现一段代码 视图:records.xthml <table> <thead> <tr> <td>#{messages['table.header.id']}</td> <td>#{messages['table.header.name']}</td> <td>#{messages[
<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>
#{messages['table.header.id']}
#{messages['table.header.name']}
#{messages['table.header.date.added']}
你只有一个错误:代码>必须进入EL表达式内部
即,这是无效的:
rendered="!#{viewRecordBean.currentRecord(listedRecord.id)}"
应该是:
rendered="#{!viewRecordBean.currentRecord(listedRecord.id)}"
对于剩余部分,假设您的环境支持EL2.2,它看起来应该可以正常工作。我只会使用
,因为这样可以消除HTML样板文件。您只有一个错误:代码>必须进入EL表达式内部
即,这是无效的:
rendered="!#{viewRecordBean.currentRecord(listedRecord.id)}"
应该是:
rendered="#{!viewRecordBean.currentRecord(listedRecord.id)}"
对于剩余部分,假设您的环境支持EL2.2,它看起来应该可以正常工作。我只会使用
,因为这样可以消除HTML样板文件。感谢您的快速响应!!我是JSF/Java/EL等的新手。如何判断我的堆栈支持什么EL?取决于服务器和web.xml版本。另请参见,我似乎正在使用jboss-el-2.0.1。现在,我需要保留HTML样板文件,所以我仍然需要使用a4j:repeat
选项。当我这样做时,listedRecord.id
拒绝将viewRecordBean.currentRecord(listedRecord.id)
方法作为null以外的任何内容。我不确定如何获得实际价值。我的错误。。。这确实有效。我现在已经能够验证参数值是否确实正确传递。再次感谢你的帮助!!谢谢你的快速回复!!我是JSF/Java/EL等的新手。如何判断我的堆栈支持什么EL?取决于服务器和web.xml版本。另请参见,我似乎正在使用jboss-el-2.0.1。现在,我需要保留HTML样板文件,所以我仍然需要使用a4j:repeat
选项。当我这样做时,listedRecord.id
拒绝将viewRecordBean.currentRecord(listedRecord.id)
方法作为null以外的任何内容。我不确定如何获得实际价值。我的错误。。。这确实有效。我现在已经能够验证参数值是否确实正确传递。再次感谢你的帮助!!如果我是你,我会这样做:value=“#{viewRecordBean.currentRecord(listedRecord.id)?listedRecord.candidate:messages['table.header.record.archived']}”
。如果我是你,我会这样做:value=“#{viewRecordBean.currentRecord(listedRecord.id)?listedRecord.candidate:messages['table.header.record.archived']}
。不是两行,而是只有一行,并且只检查一次条件。