cancel
Showing results for 
Search instead for 
Did you mean: 

JSF y reglas de Navegación.

kunkunkunkun
Champ in-the-making
Champ in-the-making
Hola, tengo una personalizacion en JSP muy muy simple, y no consigo que me obedezcan las reglas de navegación.

index.jsp
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core'%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html'%>

<h:form>
      <h:outputText value="#{sms.nombre}" />
      <h:inputText value="#{formulario.nombre}"></h:inputText>

      <h:commandButton value="#{sms.guardar}" action="guardar"/>
</h:form>

faces-config.xml

<navigation-rule>
  <from-view-id>/jsp/extension/index.jsp</from-view-id>
  <navigation-case>
   <from-outcome>guardar</from-outcome>
   <to-view-id>/jsp/extension/guardar.jsp</to-view-id>
  </navigation-case>
</navigation-rule>

Ahora cuando arranco la aplicación, se muestra perfectamente mi pagina index.jsp, pero en cuanto hago click en el botón "submit", (<h:commandButton value="#{sms.guardar}" action="guardar"/>) no hace nada, ni despliega la página guardar.jsp, se queda todo tal cual.

he intentado ya absolutamente de todo.
Puede alguien ayudarme???
Gracias!
Puede alguien ayudarme??
9 REPLIES 9

cybermakoki
Champ in-the-making
Champ in-the-making
Hmm… no se como lo tienes codificado exactamente, el command button tiene que hacer referencia a una acción de una clase…

tu tienes esto:

<h:commandButton value="#{sms.guardar}" action="guardar"/>

cuando deberia ser algo asi:

<h:commandButton value="#{sms.guardar}" action="#{claseJava.guardar}"/>

y en tu clase java tendras un método guardar tal que asi:

public String guardar(){
    String outcome = "guardar";
    // … código …
    return outcome;

}

kunkunkunkun
Champ in-the-making
Champ in-the-making
Gracias por responder lo primero.
Creo que se puedo de las 2 formas como lo tengo yo y como tú me dices. No obstante también lo había probado así y nanai…

cybermakoki
Champ in-the-making
Champ in-the-making
Pues si tienes asi la clase guardar deberia funcionar… a no ser que tengas igual otra regla de navegación y se estén chocando… puedes pegar el faces-config completo??

kunkunkunkun
Champ in-the-making
Champ in-the-making
Que va, de todas formas aquí lo copio.

<faces-config>


   <!– rule to get back to the login page from anywhere –>
   <navigation-rule>
      <from-view-id>/jsp/*</from-view-id>
      <navigation-case>
         <from-outcome>logout</from-outcome>
         <to-view-id>/jsp/extension/login.jsp</to-view-id>
      </navigation-case>
      <navigation-case>
         <from-outcome>relogin</from-outcome>
         <to-view-id>/jsp/extension/relogin.jsp</to-view-id>
      </navigation-case>
      <navigation-case>
           <from-outcome>scan</from-outcome>
           <to-view-id>/jsp/extension/index.jsp</to-view-id>
      </navigation-case>
   </navigation-rule>
  
   <navigation-rule>
      <from-view-id>/jsp/extension/login.jsp</from-view-id>
      <navigation-case>
         <from-outcome>success</from-outcome>
         <to-view-id>/jsp/browse/browse.jsp</to-view-id>
      </navigation-case>
   </navigation-rule>

   <navigation-rule>
       <from-view-id>/jsp/extension/index.jsp</from-view-id>
       <navigation-case>
           <from-outcome>guardar</from-outcome>
           <to-view-id>/jsp/extension/guardar.jsp</to-view-id>
       </navigation-case>  
   </navigation-rule>
     
  
</faces-config>

cybermakoki
Champ in-the-making
Champ in-the-making
No se.. parece todo correcto… has probado a añadirle en la primera regla el guardar???

kunkunkunkun
Champ in-the-making
Champ in-the-making
Sí, y tampoco funciona. No sé que puede estar mal, pero esta bobada me está haciendo perder mucho tiempo Smiley Sad

cybermakoki
Champ in-the-making
Champ in-the-making
Hmmm… una cosa… estás utilizando el faces-config-navigation o el custom??

si estás usando el primero, has probado a añadirlo en el custom??

kunkunkunkun
Champ in-the-making
Champ in-the-making
Pues utilizo el faces-config-custom, pero vamos que tambien he probado con el navigation y nada…
Si es que lo que me parece más raro de todo es que funcionen las otras reglas de navegación y esa no.
Si utilizo la regla de navegacion para ir al jsp/extension/index.jsp perfecto. Pero luego para moverme desde el index.jsp a otro sitio, añada la regla que añada ninguna… ni un boton de cancelar ni ná de na funciona.
Eso sí, si manualmente cambio la dirección desde la barra de direcciones, lógicamente la página está y funciona bien!

cybermakoki
Champ in-the-making
Champ in-the-making
Pues algo tiene que tener el método entonces… puedes ponerlo para que le echemos un vistazo??