Estoy haciendo una aplicacion web con icefaces. Tengo una pagina que muestra datos que hay en un managed bean.
El codigo de la pagina es el siguiente:
Código HTML:
<ice:form> <!-- Boton "modificar datos" --> <ice:commandButton value="Guardar datos personales" style="left: 150pxtop: 350px; position: absolute" action="#modificarDatosCliente.modificarDatosPersonales}" /> <!--Boton "volver"--> <ice:commandButton value="Volver" style="left: 350px; top: 350px; position:absolute" action="#{modificarDatosCliente.volver}" /> <!-- Nombre del cliente --> <ice:outputLabel for="txtNombre" value="Nombre Cliente: " style="left: 100px; top: 150px; position: absolute"/> <ice:inputText id="txtNombre" style="left: 250px; top: 150px; position:absolute" size="30" required="true" value="#{modificarDatosCliente.cliente.nombre}"/> </ice:form>
Código:
Mi pregunta es: ¿Cómo puedo hacer para que, una vez modifique el valor del inputtext, solo se modifique en el managed bean cuando presione el boton de "guardar datos personales" y no cuando el inputtext pierda el foco?public class ModificarDatosCliente { private Cliente cliente; /** Creates a new instance of ModificarDatosCliente */ public ModificarDatosCliente() {} public Cliente getCliente() { return cliente; } public void setCliente(Cliente cliente) { this.cliente = cliente; } public void modificarDatosPersonales(){ Session sesion = obtenerSesion(); try{ sesion.beginTransaction(); sesion.update(cliente); sesion.getTransaction().commit(); sesion.close(); }catch(Exception e){ e.printStackTrace(); deshacerTransaccion(); } } /**Metodo para volver a la pantalla anterior **/ public String volver(){ FacesContext context = FacesContext.getCurrentInstance(); context.getExternalContext().getRequestMap().remove("modificarDatosCliente"); return "VOLVER"; } }
Gracias de antemano