在jsf中,同一個頁面上有公有的內容,也有非公有的內容,經過一個按鈕進行切換來顯示不一樣的內容(經過ajax實現):
前臺頁面:(這句話放到單選按鈕裏面,這樣後臺就能知道切換後日後臺傳的值)
<p:ajax immediate="true" listener="#{userBean.userTypeChange}" update=":theShowPage" />
註釋:
immediate="true"表示跳過驗證當即執行;
update=":theShowPage"表示切換完按鈕後更新的頁面。 ajax
後臺頁面:
public void userTypeChange(AjaxBehaviorEvent event) {
Object item = ((SelectOneMenu) event.getSource()).getSubmittedValue();
int role= Integer.parseInt((String.valueOf(item)));
if (newValue == "管理員") {
user.setUserType(1);
}
} this
前臺頁面若是要顯示不一樣的值,能夠在同一個頁面上用rendered屬性,這種驗證能經過int型或boolean類型進行顯示,String類型的不行例如:
rendered="#{userBean.user.userType==1}" spa
詳細的一種寫法: bean頁面: private String province; private String city; public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } List selectItemList = new ArrayList(); public List getSelectItemList() { return selectItemList; } public void changeProvince(AjaxBehaviorEvent event) { String selectedValue =String.valueOf(((HtmlSelectOneMenu)event.getSource()).getSubmittedValue()) ; if (selectedValue.equals("hbs")) { selectItemList.add(new SelectItem("2", "Label2")); } else { selectItemList.add(new SelectItem("1", "Label1")); } }