0

こんにちは皆さん、いくつかのパラメーターを actionListener に渡す必要があります。これは私のコードです

<p:dialog id="dialog" header="Acceso Restringido" widgetVar="dlgRegister" modal="true">  
<h:form>  

    <h:panelGrid columns="2" cellpadding="5">  
        <h:outputLabel for="username" value="Nombre de Usuario:" />  
        <p:inputText value="#{loginBean.usuario.username}"   
                id="username" required="true" label="username" />  

        <h:outputLabel for="password" value="Contraseña:" />  
        <h:inputSecret value="#{loginBean.usuario.password}"   
                id="password" required="true" label="password" />

        <h:outputLabel for="correo" value="Correo:" />  
        <h:inputSecret value="#{loginBean.usuario.correo}"   
                id="correo" required="true" label="correo" />

        <f:facet name="footer">  
            <p:commandButton id="regButton" value="Registrar" update=":growl"   
                             actionListener="#{loginBean.login(actionEvent)}"   
                oncomplete="handleLoginRequest(xhr, status, args)"/>  
        </f:facet>  
    </h:panelGrid>  

</h:form>  

svalue="#{loginBean.usuario.username}" の例を actionListener="#{loginBean.login(actionEvent,---HERE----)}" に渡す必要があります。

4

2 に答える 2

1
actionListener="#{loginBean.login(actionEvent)}"  

これは正しくないです。#{actionEvent}スコープ内にマネージド Bean がまったく存在しません。JSF はActionEvent、アクション リスナー メソッドの実際の引数自体を既に準備しています。省略してください:

actionListener="#{loginBean.login}"  

JSF は、正しい引数を暗黙的に作成して渡します。

メソッド内で直接ユーザー名にアクセスできます。

public void login(ActionEvent event) {
    System.out.println(usario.getUsername()); // Look, it's already been set by JSF.
}

以下も参照してください。

于 2013-04-18T11:34:56.717 に答える