成功密码检查后加载新网页

时间:2013-03-04 20:37:39

标签: java jsf java-ee jboss7.x el

我正在尝试编写一些“表达式语言”代码。目前,在下面的(1)下调用greetController.greet方法,如果用户名和密码匹配,则返回一个字符串。我想要做的是,如果返回的字符串是某个值,则加载另一个网页。请有人建议如何做到这一点

提前致谢

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">

<ui:composition template="template.xhtml">
    <ui:define name="content">
        <h:messages />
        <h:form id="greetForm">
            <h:panelGrid columns="3">
                <h:outputLabel for="username">Enter username:</h:outputLabel>
                <h:inputText id="username"
                    value="#{greetController.username}" />
                <br />
                <h:outputLabel for="password">Enter password:</h:outputLabel>
                <h:inputText id="password"
                    value="#{greetController.password}" />
                <h:message for="username" />
            </h:panelGrid>
            <h:commandButton id="greet" value="Login"
                **action="#{greetController.greet}" />** //(1)
        </h:form>
        **<h:outputText value="#{greetController.greeting}"** //(2)
            rendered="#{not empty greetController.greeting}" />
        <br />
        <h:link outcome="/create.xhtml" value="Add a new user" />
    </ui:define>
</ui:composition>
</html>

1 个答案:

答案 0 :(得分:1)

我的回答是假设此登录表单位于 /app/login.xhtml ,并且您想要加载其他网页(例如 /app/home.xhtml )返回的字符串是一个值(比如成功):

对于JSF2

如果您使用的是JSF2,则只需从bean中返回下一页的URL

即可
public String login()
{
   // check user password...
   return "/app/home.xhtml"
   // this will work without faces-config.xml entry using JSF2
}

对于JSF1或JSF2

只需将此条目添加到faces-config.xml文件即可。

    <navigation-rule>
        <from-view-id>/app/login.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/app/home.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>

更多信息 你的问题很基础。我建议遵循JSF的初学者级别教程。例如:http://www.mkyong.com/tutorials/jsf-2-0-tutorials/