我想根據用戶是否是管理員來限制PrimeFaces選項卡的呈現。bean值更改後的更新頁面
我使用以下EL這樣做:
<p:tab title="Admin" rendered="#{userSession.isAdmin}">
我UserSession類:
@ManagedBean(name="userSession")
@SessionScoped
public class UserSession {
.
.
.
public boolean isAdmin;
public UserSession() {
isAdmin = false;
}
public void addRole(String role) {
if (role.equals("ADMIN") {
this.isAdmin = true;
}
role.add(role)
}
}
的addRole()方法被調用,並添加角色 「ADMIN」。我知道這不是一種好的做事方式,但我現在只是將它用於測試目的。
我的問題是,該選項卡沒有被渲染,因爲isAdmin在構造函數中被識別爲false。如果我將構造函數更改爲true,則它會渲染。
我該怎麼做才能認識到isAdmin事後是真的?即在ADMIN角色已被授予用戶的會話之後?
是否有可能'重新加載'頁面,以便它可以在更改後重新提取'isAdmin'屬性?
使用ajax請求調用addRole()並更新您的選項卡。 –
@ShadyAziz是否需要ajax請求?當然,如果你更新標籤,它將能夠'看到'它已經改變了? – James
是的,是的。想想這裏的主人吧。你想在後端調用一個函數,然後更新UI中的某個模塊來渲染它。 我建議你閱讀有關它的素質面孔。這裏是一個簡單的例子 http://www.primefaces.org/showcase/ui/ajax/basic.xhtml –