从当前行数据表中获取 id 以链接 JSF Primefaces Java [重复]

Posted

技术标签:

【中文标题】从当前行数据表中获取 id 以链接 JSF Primefaces Java [重复]【英文标题】:Get id from current row dataTable to link JSF Primefaces Java [duplicate] 【发布时间】:2013-11-21 14:28:00 【问题描述】:

如何将当前行 p:dataTable primefaces 的 Id 获取到我的链接中使用此 Id 的位置?描述一下(对不起我的英语)。我的数据表看起来像这张照片:http://www.image-share.com/igif-2333-105.html 当我单击按钮时,我想获取该按钮所在行的 ID,例如,第 1 行的 ID 为 1,因此当单击按钮 1 时,我必须获取 ID = 1。显示我的链接在哪里需要 ID: http://'serverAddress'/myApplication/PDF?type=document&id="+id" 变量 id 具有 int 类型和 getter,实体和 bean 中的 setter。 JSF 中的按钮如下所示: h:commandButton value="Print" action="#printBean.print()"/> 方法“打印”启动我的链接。任何想法如何做到这一点?感谢您的帮助。

【问题讨论】:

我认为他正在寻找的是:***.com/questions/14633008/… 在普通 JSF 的情况下。 【参考方案1】:

您可以使用p:dataTablerowIndexVar 属性。

引用每个行索引的迭代器的名称

在EL中可以使用谁的迭代器名称来获取Row Id

例如: 如果rowIndexVar="myId",那么您可以使用#myID 在EL 中使用该迭代器名称访问每一行索引。

例子:

<p:dataTable rowIndexVar="rowId" value="..." var="...">
    <p:column>
       <h:commandLink action="#...">
         <f:param name="id" value="#rowId" />
       </h:commandLink>
    </p:column>
</p:dataTable>

【讨论】:

我将如何在我的 bean 函数中使用选定的 rowId?我的意思是,当我单击第一行中的按钮时,我需要一个值为 1 的变量(或任何其他可以让我知道表中所选行的技术)【参考方案2】:

在bean中获取id

map<String,String> par_map = new HashMap<String,String>(); par_map=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();

String id=par_map.get("id");

【讨论】:

以上是关于从当前行数据表中获取 id 以链接 JSF Primefaces Java [重复]的主要内容,如果未能解决你的问题,请参考以下文章

以追加到列表为结果的多处理 for 循环

如何在 JSF 组件中监控异步/后台线程状态并获取通知

当通过链接或后退按钮打开时,强制 JSF 刷新页面/视图/表单

如何使用 FacesContext 在 JSF 中获取以前的 URL?

如何从链接/非面孔请求调用 JSF 支持 bean 方法

在新选项卡/窗口中打开链接而不丢失当前 JSF 页面的视图范围