Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > No se actualiza valor de ManagedBean

Hola a todos,

Tengo una app web con jsf y primefaces e intento hacer un pequeño overlay para crear una entidad sobre un datatable... cuando le doy click al botón que abriría mi ligthbox, abre bien... cuando pongo los datos y doy click en el botón para crear, se llama al método del actionListener... pero! el valor del inputtext está en null... y haciendo debug veo que nunca se llega al set de ese atributo... este es mi código:

[CODE]

<p:lightBox widgetVar="lightbox">
<p:commandButton id="botonNuevo" value="Nuevo" />

<f:facet name="inline">
<p:panel closeTitle="Cerrar" header="Crear Nuevo Tipo de Cuenta">

<center><p:graphicImage url="../images/Abaco.png"></p:graphicImage></center>

<h:outputText value="Nombre: " /><p:inputText value="#{tipoCuentaBean.nuevoTipoCtaNombre}" />


<p:commandButton value="Crear" actionListener="#{tipoCuentaBean.crearTipoCuenta()}" update="panel" oncomplete="PF('lightbox').hide();" />
</p:panel>

</f:facet>
</p:lightBox>
</p:panel>
</h:form>
[/CODE]

En el ManagedBean tengo obviamente creada la variable String nuevoTipoCtaNombre y su respectivo getter y setter....

Que puedo estar haciendo mal?

Muchas gracias a todos por su ayuda!

abril 10, 2014 | Registered Commenterjotamarios

podrías poner el código de tipoCuentaBean

abril 10, 2014 | Unregistered CommenterMcRose

Claro que si... pondré resumido para no incluir otras cosas que no van al caso:

public class TipoCuentaBean {

public String nuevoTipoCtaNombre;

public TipoCuentaBean() {
}

public String getNuevoTipoCtaNombre() {
return nuevoTipoCtaNombre;
}

public void setNuevoTipoCtaNombre(String nuevoTipoCtaNombre) {
this.nuevoTipoCtaNombre = nuevoTipoCtaNombre;
}

public void crearTipoCuenta() {
if (nuevoTipoCtaNombre != null) {
TipoCuentaDTO tipoctaDTO = new TipoCuentaDTO();
if (tipoctaDTO.CrearTipoCuenta(new TipoCuenta(nuevoTipoCtaNombre)).isOk()) {
tipos = null;
responder("Tipo de Cuenta Creado");
} else {
responder("No se pudo crear Tipo de Cuenta");
}
} else {
responder("Ingrese un nombre");
}
}

public void responder(String mensaje) {
FacesMessage msg = new FacesMessage(mensaje);
FacesContext.getCurrentInstance().addMessage(null, msg);
}
}


Gracias por la ayuda!

abril 10, 2014 | Registered Commenterjotamarios

bueno, en realidad quería ver los annotations, me imagino que al menos es @ViewScoped

el tema de los paneles tenés que ver bien de utilizarlos, tu actionListener se ejecuta antes del submit, por eso todos tus campos están en null
te recomiendo lo cambies a "action"

abril 11, 2014 | Unregistered CommenterMcRose

Hola, talvez te pueda ayudar añadiendo el atributo process al commandButton, primaramente agregale en id a tu inputText ejmplo: <p:inputText id="surname" .../>
y en el boton ej: <p:commandButton value="Crear" process="@this,surname" .../>
Suerte...

abril 14, 2014 | Registered Commenterjosimar