我在JSF 2应用程序中使用Primefaces.我有一个<p:dataTable>,而不是选择行,我希望用户能够直接对各行执行各种操作.为此,我<p:commandLink>在最后一栏中有几个.
我的问题:如何将行ID传递给命令链接启动的操作,以便我知道要对哪一行进行操作?我尝试使用<f:attribute>:
<p:dataTable value="#{bean.items}" var="item">
...
<p:column>
<p:commandLink actionListener="#{bean.insert}" value="insert">
<f:attribute name="id" value="#{item.id}" />
</p:commandLink>
</p:column>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
但它总是产生0 - 显然在f呈现属性时行变量不可用(当我使用固定值时它可以工作).
有人有替代解决方案吗?
定义View Params之间有什么区别:
<f:metadata>
<f:viewParam name="id" value="#{someBean.id}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)
并在ManagedBean中定义属性,如下所示:
@ManagedProperty(value = "#{param.id}")
private Integer id;
Run Code Online (Sandbox Code Playgroud) 我是一名法国计算机科学专业的学生,我有一个小型的学校JSF项目.我有点菜鸟,我尝试在2视图之间传递数据,但我失败了.
首先,我有一个视图,列出我的所有客户,在数据表中.在这个数据表中,我有一个显示客户档案的链接.对于这两个视图,我使用CustomerController,它是一个requestcoped managedbean.
在我使用全局会话控制器之前,我认为这不是传递数据的好方法.
然后我发现这篇文章:JSF最佳实践,它建议用于在视图之间传递对象.我无法让它发挥作用.
最后我也发现这个#1问题:F:setPropertyActionListener设置为空值,而不是预期的价值,其使用
我的问题是:传递数据的最佳方式是什么?怎么管理呢?