[英]How to direct call xhml page from ManagedBean based on action method return string without faces-config.xml file
@Named
public class LoginBean{
private String username;
private String password;
private String userType;
// setter getter
public String login() {
...
if(isUserValidate()){
if(userType.equals("HR"){
return "HRHOME";
}
if(userType.equals("ADMIN"){
return "ADMINHOME";
}
if(userType.equals("MANAGER"){
return "MANAGERHOME";
}
}
return "FAILURE";
}
}
WebContent\app\common\login.xhtml;
WebContent\app\common\error.xhtml;
WebContent\app\admin\adminHome.xhtml;
WebContent\app\hr\hrHome.xhtml;
....
<!-- Case 0 for login user -->
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>LOGIN</from-outcome>
<to-view-id>/app/common/login.xhtml</to-view-id>
</navigation-case>
<!-- Case 1 if login user is from HR -->
<from-view-id>/app/common/login.xhtml</from-view-id>
<navigation-case>
<from-outcome>HRHOME</from-outcome>
<to-view-id>/app/hr/hrHome.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>ADMINHOME</from-outcome>
<to-view-id>/app/admin/adminHome.xhtml</to-view-id>
</navigation-case>
...
<navigation-case>
<from-outcome>FAILURE</from-outcome>
<to-view-id>/app/common/error.xhtml</to-view-id>
</navigation-case>
正如您在上面的快照代碼中看到的那樣..
login.xhtml 對所有用戶都是通用的,根據登錄用戶驗證結果頁面將被決定。 如果用戶屬於 HR 則 app/hr/hrHome.xhtml 將被重定向 如果用戶屬於 Admin 然后 app/admin/adminHome.xhtml
需求:我想根據LoginBean class的action方法login()的返回字符串重定向具體結果xhtml頁面,而不是使用xml配置文件faces-config.Z0F635D0E0F3874FFF8B581C132E。
如何使用 Primefaces 和 JSF 來做到這一點?
你可以做類似的事情
if (isUserValidate()) {
return "/WebContent\app\hr\hrHome.jsf?faces-redirect=true";
} else if(userType.equals("ADMIN"){ {
return "/WebContent\app\admin\adminHome.jsf?faces-redirect=true";
} else if(.......){
.........
}else{
return "/WebContent\app\admin\error.jsf?faces-redirect=true"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.