根据bean返回修改JSF页面

时间:2015-01-24 05:56:49

标签: jsf

我需要我的JSF页面来显示被调用方法的返回值,而不会重定向到另一个页面或刷新现有页面。或许我完全不能理解这个问题,所以我要引导我,如何显示bean返回的内容(它返回一些String)。 如果它返回" home",则显示home.xhtml - 此部分有效。 但如果它显示其他东西,我需要它在页面上写。 我的页面如下,如何更改以获得所需的结果?

<!DOCTYPE html>
<html 
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>login</title>
</h:head>
<h:body>
    <h:form id="loginForm">
        <p:growl id="msg" showDetail="true" life="3000" />
        <p:panel header="Login" style="width: 360px;">
            <h:panelGrid id="loginPanel" columns="2">
                <h:outputText value="Username" />
                <p:inputText id="username" value="#{loginBean.userName}"></p:inputText>
                <p:spacer></p:spacer>
                <p:message for="username"></p:message>
                <h:outputText value="Password" />
                <p:password id="password" value="#{loginBean.password}"
                    feedback="false"></p:password>
                <p:spacer></p:spacer>
                <p:message for="password"></p:message>
                <p:spacer></p:spacer>
                <p:commandButton action="#{loginBean.login()}" value="Login"
                    update="loginForm" ajax="true"></p:commandButton>
            </h:panelGrid>
        </p:panel>
    </h:form>
</h:body>
</html>

我的LoginBean类:

@ManagedBean(name = "loginBean")
@SessionScoped

public class LoginBean implements Serializable {
    private String userName;
    private String password;
    private String role;
    private String msg;

省略所有字段的setter和getter

    public String login() {

        UserBean result = UserDao.login(userName, password);

        if (!result.isWrongUserName() && !result.isWrongPassword()) {
            HttpSession session = Util.getSession();
            session.setAttribute("username", userName);
            session.setAttribute("role", role);
            return "home";
        } else if (result.isWrongUserName()) {
            ???????????
        } else {
            ???????????
        }
    }

    public String logout() {
        HttpSession session = Util.getSession();
        session.invalidate();
        return "login";
    }
}

0 个答案:

没有答案