2

ページをリダイレクトせずにビュー パラメータを更新することは可能ですか? 例えば

ID が存在するかどうかをチェックするマネージド Bean があります

public void signIn(){
    Client c = clientFacade.loginDetail(client.getID());

    if (c != null) {
        loggedIn = true;  
    }
    else{
        loggedIn = false;
    }
}

ID が存在する場合に適切にレンダリングされるビュー。

<h:panelGroup rendered="#{not applicationManager.loggedIn}">
    <p:commandLink value="Sign In" onclick="loginDialog.show()" styleClass="login-link"></p:commandLink>
</h:panelGroup>
<h:panelGroup rendered="#{applicationManager.loggedIn}">
    <p:menuButton value="#{applicationManager.client.firstname}" />
</h:panelGroup>

<p:dialog widgetVar="loginDialog" >
    <h:panelGrid columns="2" cellpadding="5">
        ID :    <p:inputText value="#{applicationManager.client.id}" />
        <p:commandButton value="submit" action="#{applicationManager.signIn()}" update=":loginForm" />
    </h:panelGrid>
</p:dialog>

以下のコードをビューの上部に挿入しても、URL を更新することはできますか?

<f:metadata>
    <f:viewParam name="input" value="#{applicationManager.client.id}" />
    <f:event listener="#{applicationManager.signIn()}" type="preRenderView"/>
</f:metadata>

やってみたのですが、うまくいかないので、何か抜けているか、何か間違っているのではないかと思います。

4

0 に答える 0