0

「式言語」コードを書き込もうとしています。現時点では、以下の (1) で、greetController.greet メソッドが呼び出され、ユーザー名とパスワードが一致すると文字列が返されます。私がやりたいことは、返された文字列が特定の値である場合、代わりに別の Web ページを読み込むことです。誰かがこれを行う方法を教えてください

前もって感謝します

<!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)に別のWebページ(たとえば、 / 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 に答える