将参数传递给函数JSF

时间:2013-04-18 01:31:31

标签: java hibernate jsf

大家好我需要将一些参数传递给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 ----)}”

2 个答案:

答案 0 :(得分:1)

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

这是不对的。根本没有托管bean #{actionEvent}。 JSF已经为动作监听器方法准备了真正的ActionEvent参数。省略它:

actionListener="#{loginBean.login}"  

JSF将隐式创建并传递正确的参数。

您可以直接在方法中访问用户名:

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

另见:

答案 1 :(得分:0)

  1. 该值已在loginBean.usario.username中设置
  2. 您可以将其设置为loginBean.usario.username