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)}"  

这个不对。范围内根本不存在托管 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.
}

也可以看看:

于 2013-04-18T11:34:56.717 回答
0
  1. 该值已在 loginBean.usario.username 中设置
  2. 您可以像 loginBean.usario.username 一样设置它
于 2013-04-18T05:28:23.980 回答