0

我有一个必须实现登录的 Web 应用程序。用户在验证用户身份后提供用户名和密码,用户应重定向到他们拥有特权的页面,页面因用户而异。有时 2 个或更多用户可以获得相同的页面,但可用数据应该不同为此我已将用户特权 ID(divisionId)传递给其他 bean

现在我已经尝试将 URL 标记参数标记为 URL 并成功定向到页面,但我不能将它带到 bean 变量中。

用 p:Button 对此进行了尝试,然后当按钮单击时,文本框输入将不会进入 bean 类来执行该方法。

xhtml 代码 -

 <h:body>

    <p:growl id="growl" showDetail="true" life="3000" />
    <p:dialog id="dialog" header="Login" widgetVar="dlg" visible="true" closable="false" >        
        <h:form id="form">  
            <h:panelGrid columns="2">  
                <h:outputLabel for="username" value="Username: " />  
                <p:inputText id="username" value="#{loginBean.username}" 
                             required="true" requiredMessage="Enter Username"/>

                <h:outputLabel for="password" value="Password: " />  
                <p:password id="password" value="#{loginBean.password}" 
                            required="true" requiredMessage="Enter Password"/>                 
            </h:panelGrid>
            <p:commandButton id="LoggingButton" value="Login" action="#{loginBean.doLogin()}"
                                 update=":growl" oncomplete="handleLoginRequest(xhr, status, args),">

                </p:commandButton>

        </h:form>

    </p:dialog>
</h:body>

登录bean-

public class LoginBean{


private String username;
private String password;
private int divisionId;

/**
 * Creates a new instance of loginBean
 */

public LoginBean() {
}

public String doLogin() {


    DbUser du = new DbUser();
    divisionId = du.ValidateUser(username, password);


    if(divisionId==0)
        addMessage("Invalied username or password", false);
    else{

        if(divisionId==1){ 

//              return "superuser.xhtml?faces-redirect=true";
            return "superuser.xhtml?test="+divisionId+"faces-redirect=true";
            //superAdmin                         
       }
        else if(divisionId==2||divisionId==3){

//               return "engadmin_create_div.xhtml?faces-redirect=true";
           return "engadmin_create_div.xhtml?test="+divisionId+"faces-redirect=true";
            //ENG/IT ADMIN

        }
        else{
//                return "viewonly_user.xhtml?faces-redirect=true";
            return "viewonly_user.xhtml?test="+divisionId+"faces-redirect=true";
            //View only users
        }
    }
     return null;        
}
4

1 回答 1

0

我认为那工作:)

    <p:growl id="growl" showDetail="true" life="3000" />
    <p:dialog id="dialog" header="Login" widgetVar="dlg" visible="true" closable="false" >        
        <h:form id="form">  
            <h:panelGrid columns="2">  
                <h:outputLabel for="username" value="Username: " />  
                <p:inputText id="username" value="#{loginBean.username}" 
                             required="true" requiredMessage="Enter Username"/>

                <h:outputLabel for="password" value="Password: " />  
                <p:password id="password" value="#{loginBean.password}" 
                            required="true" requiredMessage="Enter Password"/>                 
            </h:panelGrid>
            <p:commandButton id="LoggingButton" value="Login" actionListener="#{loginBean.doLogin()}">

                </p:commandButton>

        </h:form>

    </p:dialog>
</h:body>

public class LoginBean{


private String username;
private String password;
private int divisionId;

/**
 * Creates a new instance of loginBean
 */

public LoginBean() {
}
public static void redirect(String strDes) throws IOException {
    ExternalContext ext = FacesContext.getCurrentInstance().getExternalContext();
    ext.redirect(ext.getRequestContextPath() + strDes);
}
public void doLogin() {


    DbUser du = new DbUser();
    divisionId = du.ValidateUser(username, password);


    if(divisionId==0)
        addMessage("Invalied username or password", false);
    else{

        if(divisionId==1){ 
            LoginBean.redirect("superuser.xhtml?test="+divisionId+"faces-redirect=true");
            //superAdmin                         
       }
        else if(divisionId==2||divisionId==3){    
           LoginBean.redirect("engadmin_create_div.xhtml?test="+divisionId+"faces-redirect=true");
            //ENG/IT ADMIN    
        }
        else{
            LoginBean.redirect("viewonly_user.xhtml?test="+divisionId+"faces-redirect=true");
            //View only users
        }
    }       
}

你从bean获取参数:

Map<String,String> params = 
                FacesContext.getExternalContext().getRequestParameterMap();
      String action = params.get("test");
于 2013-04-08T06:56:46.950 回答