【发布时间】:2011-03-18 17:58:57
【问题描述】:
我正在使用 JSF 2.0 开始一个小项目。 我一开始就遇到问题,在第一个实现的模型的 CRUD 中。
我想做的很简单:
该页面有一些过滤器可供搜索,并使用 ajax 填充 h:dataTable 与结果。 用户现在应该选择具有他想要查看/编辑的结果的行。 但我就是找不到让线路可选择的方法。
这是我的桌子:
<h:dataTable var="aluno" value="#{alunoController.resultado}" >
<h:column>
#{aluno.id}
</h:column>
<h:column>
#{aluno.nome}
</h:column>
<h:column>
<!-- radiobutton, commandLink/Action goes gere -->
</h:column>
</h:dataTable>
首先我尝试在每一行上都有一个单选按钮,然后我了解到我不能在表格内有一个单选组。
然后我尝试在每行的第一个单元格中设置一个单选组,并使用一点 JavaScript 处理选择。不知何故,数据绑定不起作用,我无法在我的 ManagedBean 中恢复所选模型。
所以我尝试了一个命令按钮/链接,它通过参数发送模型......不是。它只是刷新页面。
我尝试使用查询参数,发送该行的 id 并再次从数据库中获取模型,但我无法找到一种方法来判断应该在 ManagedBean 中调用哪个方法。
所以我第一次来到这里,寻求建议。我该怎么办?我错过了一些信息吗?
我只是不想相信我想做的事情太高级了。
【问题讨论】:
-
我使用 CDI/Weld 的 ConversationScope 解决了这个问题。 dataTabel 模型不会再在请求之间丢失,因此我无法获取数据。