JSF 在打开对话框时调用另一个受管 Bean [重复]

JSF calling another managed bean while opening a dialog [duplicate]

提问人:Mohammed ABOUZID 提问时间:10/31/2023 最后编辑:BalusCMohammed ABOUZID 更新时间:10/31/2023 访问量:23

问:

你好,每个人都知道标题不对,但这是我的问题, 所以我有一个数据表,当我单击commandButton时,我想打开一个对话框并恢复对话数据 来自另一个 Bean 这是我的代码

<p:dataTable value="#{myFirstBean.listPerson}" var="person" ... >

<p:column>
<p:commandButton global="false" value="#{person.name}" action=#{myFirstBean.details()}>
 <f:setPropertyActionListener value="person" 
     target="#{myFirstBean.selectedPerson}" />
</p:column>

</p:dataTable

my bean : myFirstBean

public void details(){
 Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
flash.put("selectedPerson", selectedPerson);

 DialogFrameworkOptions options = DialogFrameworkOptions.builder()
                .modal(true)
                .fitViewport(true)
                .responsive(true)
                .width("900px")
                .contentWidth("100%")
                .resizeObserver(true)
                .resizeObserverCenter(true)
                .resizable(false)
                .styleClass("max-w-screen")
                .iframeStyleClass("max-w-screen")
                .build();

        PrimeFaces.current().dialog().openDynamic("viewPerson", options, null);

}

my second bean : selectedPersonManagedBean 
@PostConstruct
public void init(){

Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
if(flash.get("selectedPerson")!null){
person = (Person) flash.get("selectedPerson");
}

}

因此,在选定的托管 Bean 中,当我在 commandButton 上使用 ajax false 时,闪存始终是空的,但它可以工作,但我想保留 ajax 。谢谢

JSF Primefaces

评论


答: 暂无答案