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


