0

我正在尝试编写一些“表达语言”代码。目前,在 (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>
4

1 回答 1

1

我的回答假设这个登录表单在/app/login.xhtml中,如果返回的字符串是一个值(比如success ) ,你想加载另一个网页(比如/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/

于 2013-03-04T22:18:30.937 回答