[英]retrieve session object on jsf view
我有一個RequestController
(@ManagedBean和@ViewScoped)是視圖范圍的,因為我們使用的是一些Ajax調用。
我有一個帶有結果的dataTable,每個結果帶有一個按鈕
<p:commandButton action="#{requestController.requestDetail()}" icon="ui-icon-search" title="Detalhes">
<f:setPropertyActionListener target="#{requestController.backing.selectedRequestVO}" value="#{order}" />
</p:commandButton>
這個方法是接收我的dataTable的選定對象並在會話上設置,它正在工作,問題是我不知道如何從我的視圖中獲取此會話對象。
public void requestDetail() throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
context.getExternalContext().getSessionMap().put("requestDetail",backing.selectedRequestVO);context.getExternalContext().redirect(context.getExternalContext().getRequestContextPath() + "/views/request/detail.html");
}
我需要從我的視圖中訪問它,因為此對象具有請求詳細信息。
它只能由您自己指定的屬性名稱提供。
#{requestDetail}
請注意,這不是正確的方法。 您應該有另一個會話范圍的托管bean,您在視圖范圍的托管bean中注入@ManagedProperty
,然后將請求詳細信息設置為其屬性。
@ManagedBean
@ViewScoped
public class RequestController {
@ManagedProperty("#{requestDetail}")
private RequestDetail requestDetail;
public String requestDetail() {
requestDetail.setSelectedRequestVO(backing.getSelectedRequestVO());
return "/views/request/detail.html?faces-redirect=true";
}
// ...
}
同
@ManagedBean
@SessionScoped
public class RequestDetail {
private RequestVO selectedRequestVO;
// ...
}
然后您可以按如下方式訪問
#{requestDetail.selectedRequestVO}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.