【发布时间】:2011-12-29 16:56:27
【问题描述】:
我有一个项目表,每一行都有一个链接可以转发到编辑项目页面。要在编辑页面中加载数据,我需要请求范围内的托管 bean(如果我把它放在视图范围内,我会在转发中丢失数据)。
要在编辑页面中使用 ajax,我需要在视图 Scope 中使用托管 bean,因为我必须保留一些值。如果我使用 JSF 1.0 和 RichFaces,我会使用请求范围和 a4j:keepalive。
如何使用 PrimeFaces 和 JSF 2.0 获得此功能,或者如何重新定义接口以获得此功能?
好的,最后根据下面的帖子,这对我有用:
Items 表中的 CommandButton:
<o:commandButton id="editButton"
action="#{itemTableMB.editItem(item.id)}" styleClass="botonTabla">
<h:graphicImage styleClass="imagenBotonTabla" url="/resources/images/icons/pencil.png"/>
</o:commandButton>
托管 bean 中的操作:
public String editItem(Integer id){
return "/pages/items/edit.xhtml?faces-redirect=true&id="+id;
}
编辑.xhtml:
<f:metadata>
<f:viewParam id="id" name="id" value="#{itemMB.item.id}" required="true">
</f:viewParam>
<f:event type="preRenderView" listener="#{itemMB.loadItem}" />
</f:metadata>
itemMB 中的监听器:
public void loadItem(){
this.item = this.itemManager.get(this.item.getId());
}
【问题讨论】:
标签: jsf-2