[英]Passing Parameters to a function 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 ----)}}”
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.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.