0
我有一個按鈕模板,打開對話框相關:模板(userAdministrationView)傳遞參數給豆與PrimeFaces對話框架對話框
<p:commandButton
id="roles-button"
icon="fa fa-key">
<f:setPropertyActionListener value="#{user}" target="#{userAdministrationView.selectedUser}" />
<f:actionListener binding="#{userAdministrationView.openUserRolesDialogWithParameters()}"/>
<p:ajax
event="dialogReturn"
listener="#{dialogHandler.showMessage}"
update=":user-administration-form:user-administration-table"
global="false"
/>
</p:commandButton>
支持bean是@ViewScoped。
我想將參數selectedUser
傳遞給對話框。是否有可能使用Faces.setContext/Request/FlashAttribute,如建議here?我試圖實現它,如:
public void openUserRolesDialogWithParameters() {
Faces.setContextAttribute("user", selectedUser);
dialogHandler.openDialog("user-roles-dialog");
}
,並在對話框中支持bean(這是@ViewScoped太):
@PostConstruct
public void init() {
this.user = Faces.getContextAttribute("user");
...
}
但我得到的user
null
。 setRequestAttribute和setFlashAttribute的結果相同。
Here建議使用屬性創建@SessionScoped bean,但是這個決定對我來說看起來不太相關。這是唯一的方法嗎?