簡體   English   中英

如何根據沒有 faces-config.xml 文件的操作方法返回字符串直接從 ManagedBean 調用 xhml 頁面

[英]How to direct call xhml page from ManagedBean based on action method return string without faces-config.xml file

1. ManagedBean class

@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";
    }
}

2.xhtml文件

WebContent\app\common\login.xhtml;
WebContent\app\common\error.xhtml;

WebContent\app\admin\adminHome.xhtml;
WebContent\app\hr\hrHome.xhtml;
....

3.faces-config.xml

<!-- 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM