with pass parameter pages outcome from bean jsf parameter-passing managed-bean

jsf - pass - Pasar el valor del texto de entrada al método bean sin vincular el valor de entrada a la propiedad bean



pass parameters url jsf (2)

Enlace el componente como UIInput a la vista y use UIInput#getValue() para pasar su valor como argumento de método.

<h:inputText binding="#{input1}" /> <h:commandButton value="Test" action="#{myBean.execute(input1.value)}" />

con

public void execute(String value) { // ... }

Tenga en cuenta que el valor de esta manera ya está convertido y validado de la forma habitual JSF.

Ver también:

¿Puedo pasar un valor de campo de texto de entrada a un método de bean sin vincular el valor a una propiedad de bean?

<h:inputText value="#{myBean.myProperty}" /> <h:commandButton value="Test" action="#{myBean.execute()} />

¿Puedo hacer esto sin guardar temporalmente en #{myBean.myProperty} ?


Puede recuperar los parámetros del formulario obteniendo la Solicitud y utilizando Java EE ServletRequest#getParameter . Cuando use este método, recuerde establecer la identificación y el nombre de sus componentes:

<h:form id="myForm"> <h:inputText id="txtProperty" /> <!-- no binding here --> <input type="text" id="txtAnotherProperty" name="txtAnotherProperty" /> <h:commandButton value="Test" action="#{myBean.execute()} /> </h:form>

Manage Bean:

@ManagedBean @RequestScoped public class MyBean { public void execute() { HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); String txtProperty = request.getParameter("myForm:txtProperty"); //note the difference when getting the parameter String txtAnotherProperty= request.getParameter("txtAnotherProperty"); //use the value in txtProperty as you want... //Note: don''t use System.out.println in production, use a logger instead System.out.println(txtProperty); System.out.println(txtAnotherProperty); } }

Otro hilo con más información:

  • Obtener valores de parámetros de solicitud en JSF