style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Página JSF demora en cargar

Verán estoy desarrollando una aplicación con JSF Spring e Hibernate y tengo el siguiente problema. En la aprte de vista tengo varios formularios. Cada formulario se ubica en distintas paginas. A cada formulario se puede acceder a traves de unos links en la pagina principal. Los formularios los he probado y funcionan bien, hacen la funcion que le corresponde que s guardar y actualizar respectivmente. El problema es que no puedo invocar a los dos formularios en una misma sesion (No se si esto esta bien dicho). verán, por ejemplo voy a la apgina de guardar donde esta el formulario que guarda, ejecuto el submit de guardar, ahora me redirige a la pgina principal, Ahora deseo actualizar, voy a la pagina donde se encuentra el formulario de actualizar, edito los campos y cuando doy en actualizar (un commandbutton) la pagina demora en actualizar, es decir en enviarme a la apgina principal, pero la acciond e actualizar si se realiza.

Estuve investigano y al parecer es porque tengo la pagina muy cargada.

No se que tan cargada puede ser utilizar lo siguiente en la pagina principal

Bueno espero me puedan ayudar a resolver esto y si es posible una opcion de depurar la aplicacion. En estos momentos implmente el PhaseListener pero no obtengo alguna ayuda

Por cierto navegando por la web me tope con esto

http://wiki.apache.org/myfaces/How_JSF_State_Management_Works

No se si esto puede ayudarme. Si alguien tuviera la amabilidad de explicarmelo ya que no comprendo mucho

Saludos y gracias de antemano

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de benek

Código

Sería bueno si pusieras el código de tu jsp de guardar, la de actualizar y también las regla de navegación que tienes, para ver si hay algo extraño.

Saludos.

Ahi va el codigo

bueno espero me entiendan. Para empezar en un index tengo dos links hacia dos paginas que contienen dos formularios. Uno se encarga de actualizar y otro de guardar. Solo puede hacer una operación cada vez que ejeucto la aplicación ya que después de hacer una operación sea de guardar o de actualizar y deseo realizar otra segunda operación ya no puedo. O mejor dicho si puedo, pero el segundo formulario al que accedo ya no me redirige a la apgina de inicio. el browser se queda cargando, aunque si realiza la operacion, ya que eso lo puedeo verificar en la BD.

Este es el formulario 1 que se encarga de guardar

<h:form id="formReg">
        <h:panelGrid columns="2">
               
               
                <h:outputLabel  value="Nombres: "></h:outputLabel> <h:inputText  value="#{personalBean.nombre}" maxlength="100"></h:inputText>
                <h:outputLabel value="Apellidos: "></h:outputLabel> <h:inputText  value="#{personalBean.apellido}" maxlength="100"></h:inputText>
                <h:outputLabel value="Cargo: "></h:outputLabel> <h:inputText  value="#{personalBean.cargo}" maxlength="100"></h:inputText>
                <h:outputLabel value="Área: "></h:outputLabel>
                        <h:selectOneMenu value="#{personalBean.area}">
                                <f:selectItem itemValue="Administracion" itemLabel="Área de administración" />
                                <f:selectItem itemValue="Logistica" itemLabel="Área de logística" />
                                <f:selectItem itemValue="Operaciones y Ventas" itemLabel="Área de operaciones y ventas" />
                                <f:selectItem itemValue="Almacen" itemLabel="Área de almacén" />
                        </h:selectOneMenu>                     
                <h:outputLabel value="Nickname: "></h:outputLabel> <h:inputText id="nickname" value="#{personalBean.nickname}" maxlength="100"></h:inputText>
                <h:outputLabel value="Clave: "></h:outputLabel> <h:inputText id="clave" value="#{personalBean.clave}" maxlength="100"></h:inputText>
               
        </h:panelGrid>
        <h:commandButton value="Agregar" action="agregado" actionListener="#{personalBean.crearPersonal}">
                               
        </h:commandButton>
</h:form>

Este es el fromulario 2 que se encarga de actualizar.

<h:form id="formAct">
        <h:panelGrid colums="3">
                <h:outputLabel  value="ID: " ></h:outputLabel>
                <h:inputText id="id"  value="#{personalBean.id}" maxlength="100" disabled="true">
                </h:inputText>
                <h:outputLabel  value="Nombres: " ></h:outputLabel>
                <h:inputText id="noombre"  value="#{personalBean.nombre}" maxlength="100" binding="#{inputNombre}">
                </h:inputText>
                <h:outputLabel value="Apellidos: " ></h:outputLabel>
                <h:inputText id="apellido"  value="#{personalBean.apellido}" maxlength="100" binding="#{inputApellido}">
                </h:inputText>
                <h:outputLabel value="Cargo: " ></h:outputLabel>
                <h:inputText id="cargo"  value="#{personalBean.cargo}" maxlength="100" binding="#{inputCargo}">
                </h:inputText>
                <h:outputLabel value="Área: " ></h:outputLabel>        
                <h:inputText id="area"  value="#{personalBean.area}" maxlength="100" binding="#{inputArea}">
                </h:inputText> 
                <h:outputLabel value="Nickname: " ></h:outputLabel>
                <h:inputText id="nickname" value="#{personalBean.nickname}" maxlength="100" binding="#{inputNickname}">
                </h:inputText>
                <h:outputLabel value="Clave: " ></h:outputLabel>
                <h:inputText id="clave" value="#{personalBean.clave}" maxlength="100" binding="#{inputClave}">
                </h:inputText>
        </h:panelGrid> 
       
        <h:commandButton type="submit" value="Actualizar" action="modificado" actionListener="#{personalBean.actualizarPersonal}" >
        </h:commandButton>
</h:form>

Bueno y aqui las reglas de navegacion

<navigation-rule>
           <from-view-id>vista/personal/agregar.xhtml</from-view-id>
           <navigation-case>
                       <from-outcome>agregado</from-outcome>
                       <to-view-id>vista/personal/index-pers.xhtml</to-view-id>
                       <redirect/>
           </navigation-case>
        </navigation-rule>
        <navigation-rule>
           <from-view-id>vista/personal/modificar.xhtml</from-view-id>
           <navigation-case>
                       <from-outcome>modificado</from-outcome>
                       <to-view-id>vista/personal/index-pers.xhtml</to-view-id>
                       <redirect/>
           </navigation-case>
        </navigation-rule>

esta es la estructura de la aplicacion

Imagen de Shadonwk

Hola kraken, acabo de revisar

Hola kraken, acabo de revisar tu post y comentarios, y creo que ahi no esta el problema, podrías poner también el código del bean, así como la versión de JSF que utilizas y la manera en que accedes a la BD si es por Hibernate o es directamente...

Saludos.

Bueno ahi va el bean

este es el codigo del Bean

@ManagedBean(name="personalBean")
@SessionScoped

public class PersonalBean implements Serializable{
       
        /**
         *
         */

        private static final long serialVersionUID = 1L;
       
        private String id;
       
        //Atributos
        private String nombre;
        private String apellido;
        private String cargo;
        private String area;
        private String nickname;
        private String clave;
        //Manejador de Servicio
        private PersonalService personalService;
        private ActionListenerImpl actionListenerImpl;
       
        //Bindings
        private DataModel<Personal> dataModel;
        private UIData data;

       
        public UIInput getInputNombre() {
                return inputNombre;
        }

        public void setInputNombre(UIInput inputNombre) {
                this.inputNombre = inputNombre;
        }

        public UIInput getInputApellido() {
                return inputApellido;
        }

        public void setInputApellido(UIInput inputApellido) {
                this.inputApellido = inputApellido;
        }

        public UIInput getInputCargo() {
                return inputCargo;
        }

        public void setInputCargo(UIInput inputCargo) {
                this.inputCargo = inputCargo;
        }

        public UIInput getInputArea() {
                return inputArea;
        }

        public void setInputArea(UIInput inputArea) {
                this.inputArea = inputArea;
        }

        public UIInput getInputNickname() {
                return inputNickname;
        }

        public void setInputNickname(UIInput inputNickname) {
                this.inputNickname = inputNickname;
        }

        public UIInput getInputClave() {
                return inputClave;
        }

        public void setInputClave(UIInput inputClave) {
                this.inputClave = inputClave;
        }

        public PersonalService getPersonalService() {
                return personalService;
        }

        public DataModel<Personal> getDataModel() {
                dataModel = new ListDataModel<Personal>(getList());
                return dataModel;
        }

        public void setDataModel(DataModel<Personal> dataModel) {
                log(dataModel);
                this.dataModel = dataModel;
        }

        public UIData getData() {
                return data;
        }

        public void setData(UIData data) {
                log(data);
                this.data = data;
        }

        public ActionListenerImpl getActionListenerImpl() {
                return actionListenerImpl;
        }

        public void setActionListenerImpl(ActionListenerImpl actionListenerImpl) {
                this.actionListenerImpl = actionListenerImpl;
        }

        public String getId() {
                return id;
        }

        public void setId(String id) {
                log(id);
                this.id = id;
        }

        public void setPersonalService(PersonalService personalService) {
                log(personalService);
                this.personalService = personalService;
        }

        public PersonalBean(){
                personalService = new PersonalServiceImpl();
        }
       
        public String getNombre() {
                return nombre;
        }

        public void setNombre(String nombre) {
                log(nombre);
                this.nombre = nombre;
        }

        public String getApellido() {
                return apellido;
        }

        public void setApellido(String apellido) {
                log(apellido);
                this.apellido = apellido;
        }

        public String getCargo() {
                return cargo;
        }

        public void setCargo(String cargo) {
                log(cargo);
                this.cargo = cargo;
        }

        public String getArea() {
                return area;
        }

        public void setArea(String area) {
                log(area);
                this.area = area;
        }

        public String getNickname() {
                return nickname;
        }

        public void setNickname(String nickname) {
                log(nickname);
                this.nickname = nickname;
        }

        public String getClave() {
                return clave;
        }

        public void setClave(String clave) {
                log(clave);
                this.clave = clave;
        }

        public List<Personal> getList(){
                return personalService.getList();
        }
       

       
        public Personal getPersonalId(){
                Personal p = personalService.getPersonalId(getId());
                setId(String.valueOf(p.getId()));
                setNombre(p.getNombre());
                setApellido(p.getApellido());
                setCargo(p.getCargo());
                setArea(p.getArea());
                setNickname(p.getNickname());
                setClave(p.getClave());
                return p;
        }
       

       
        public void crearPersonal(ActionEvent event){
                Personal personal = PersonalBuilder.crearPersonal(this);
               
                personalService.salvarPersonal(personal);
               
               
                //return "index-pers";
        }
       
        public String goAct(){
                return "actualizar";
        }
        public void actualizarPersonal(ActionEvent event){
                System.out.println("emntro");
                Personal p = PersonalBuilder.crearPersonal(this);
                //log(p);
                personalService.actualizarPersonal(p);
               
                //return "index-pers";
               
        }

        public void actualizarForm(ComponentSystemEvent event){
                 System.out.println("entro");
                 
                Personal p = this.getPersonalId();
                log(p);
                setNombre(p.getNombre());
                setApellido(p.getApellido());
                setCargo(p.getCargo());
                setArea(p.getArea());
                setNickname(p.getNickname());
                setClave(p.getClave());  
                       
          }

        public void limpiar(ComponentSystemEvent event){
                setId("");
                setNombre("");
                setApellido("");
                setCargo("");
                setArea("");
                setNickname("");
                setClave("");    
               
        }

        private void log(Object object) {
        String methodName = Thread.currentThread().getStackTrace()[2].getMethodName();
        System.out.println("MyBean " + methodName + ": " + object);
    }

       
}

Por cierto las acciones de guardar y actualizar si se llegan a realizar, lo uqe no se llega a realizar es el retorno y renderizado de la pagina del index.

Bueno creo que mejor dejo el codigo del proyecto junto con la BD

Codigo

Base de datos

Tienen que entrar al parte que dice personal

Espero me puedan ayudar

Imagen de Shadonwk

Hola Kraken, estoy bajando el

Hola Kraken, estoy bajando el codigo en estos momentos, y lo reviso mas tarde debido a que ando un poco atorado en el trabajo, estas utilizando JSF 2.0 vdd?

Si eso es lo que estoy

Si eso es lo que estoy utilizando

Ademas de eso estoy usando el spring 3 e hibernate 3.6 tambien

Imagen de Shadonwk

Hola, recien estoy revisando

Hola, recien estoy revisando tu proyecto, para empezar te comento que encontre los siguientes errores:

En el archivo vista.clientes.agregar.xhtml teines un tag "</h:commandButton> " definitivamente esta mal escrito.

En el archivo vista.personal.result.xhtml teines un tag " </ui:remove> " definitivamente sobra.

Al parecer si me levanta el proyecto realizando las correciones, pero ahora dime que liga usas como principal?

que tiene los tags ...Se

que tiene los tags ...Se supone que cuando se abre el command Button se tiene que cerrar de esta manera
</h:commandButton>.

Ademas el proyecto si levantaba sin necesidad de hacer ninguna correcion. Por cierto tambien debes modificar los archivos de configuracion del hibernat ya que debos adaptarlo de acuerdo a la contraseña del usuario root que utilizas para conectarte a la BD.

Bueno cuando ejecutas el proyecto te saldra algo como esto

Clientes | Personal | Factura....

entras a la parte de Personal. Cuando entres te aparecerá una tabla que contiene todo el listado del personal. ahora prueba modificar y agregar. Para modificar solo tienes que hacer clic en el campo id de cada fila de la tabla, veras que es un link. Luego para agregar veras que encima de la tabla hay una opción llamada agregar. Al hacer clic te llevara a la pagina donde se encuentra el formulario para que agregues el personal (agregar.xhtml). cuando hagas clic en el botón, veras que la pagina se cuelga, pero la operación de agregar si llega a realizar, para eso verificas la BD. Ese es el problema que tengo que la pagina se cuelga y no me redirige a la pagina inicial como si lo hace luego de modificar.
Ahora, cuando agrego y luego modifico tambien sucede lo mismo, la apgina se cuelga

Bueno epero me puedas ayudar

Disculpen pero no hay alguien

Disculpen pero no hay alguien que pueda ayudarme con el problema que tengo
Lo necesito urgente por favor

Imagen de Shadonwk

Hola Kraken, dejame te

Hola Kraken, dejame te comento que baje tu proyecto, lo levante en eclipse, pero lamentablemente no correo, al parecer tiene varios errores, si gustas que ayude por favor corrigelo, o bien agregame al msn y en un rato que tenga tiempo libre lo corregimos..

http://javamexico.org/blogs/shadonwk/cual_es_tu_msn

Ok ya te agregue. que raro,

Ok ya te agregue.

que raro, que el proyecto no ejecute porque en estos momentos lo estoy ejecutando en mi eclipse

Mi correo es ces..@hotmail.com

[EDIT]

He revisado de nuevo el proyceto si si presentaba un error en modificar

Bueno ya o corregi y lo subo de nuevo

Codigo

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">