Projets
Pages enfant
  • 1.9.3 Ecriture des formulaires

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Les balises <h:messages> et <h:message> sont traitées dans un paragraphe à suivre.

exercice
Ajouter une entrée dans la barre de navigation
Ajouter une entrée dans la barre de navigation

Ajouter une entrée Test1 dans la barre de navigation (_navigationItems.jsp) qui sera toujours affichée (pas d'attribut rendered) et dont l'action sera gotoTest1 (en dur).
Ajouter une règle de navigation (dans /properties/jsf/navigation-rules.xml) pour que la sélection de cet item envoie sur la vue /stylesheets/test1.jsp.
Tester.
Image Modified
 

Info

L'envoi vers test1.jsp ne doit pas marcher tant que la vue n'a pas été créée.

solution
  1. Dans _navigationItems.jsp, ajouter :  
    Bloc de code
    <h:menuItem id="test1" value="Test1" action="gotoTest1" />
    
    2. Dans navigation-rules.xml, ajouter :
    Bloc de code
    <navigation-rule>
     <from-view-id>*</from-view-id>
     <navigation-case>
       <from-outcome>gotoTest1</from-outcome>
       <to-view-id>/stylesheets/test1.jsp</to-view-id>
       <redirect/>
     </navigation-case>
    </navigation-rule>
    

exercice
Ajouter une page JSF
Ajouter une page JSF

Créer la page test1.jsp, (la créer à partir de about.jsp, en ne gardant que la barre de navigation) et tester (elle doit s'afficher).

Note : la page doit s'afficher maintenant qu'elle existe.

solution

Contenu de test1.jsp :

Bloc de code
 <%@include file="_include.jsp"%>

 <%@include file="_navigation.jsp"%>

exercice
Créer une règle de navigation
Créer une règle de navigation

Ajouter un formulaire avec un bouton Move sur la page, dont l'action gotoWelcome envoie sur la page welcome.jsp.
Image Modified

Info

Ajouter une règle de navigation dans le fichier /properties/jsf/navigation-rules.xml.

solution

1. Contenu de test1.jsp :

Bloc de code
<%@include file="_include.jsp"%>
<%@include file="_navigation.jsp"%>
  <h:form>
    <h:commandButton value="Move"
	action="gotoWelcome"/>
  </h:form>

2. Dans navigation-rules.xml, ajouter :

Bloc de code
<navigation-rule>
  <from-view-id>/stylesheets/test1.jsp</from-view-id>
  <navigation-case>
    <from-outcome>gotoWelcome</from-outcome>
    <to-view-id>/stylesheets/welcome.jsp</to-view-id>
    <redirect />
   </navigation-case>
</navigation-rule>

exercice
Créer un contrôleur
Créer un contrôleur

Ajouter une classe contrôleur Test1Controller (la créer à partir de AboutController), ajouter à cette classe une méthode callback() qui renvoie la chaîne gotoWelcome, et appeler cette méthode en réaction au bouton de la page test1.jsp.
Tester.

Info

Ne pas oublier de déclarer le bean test1Controller dans /properties/web/controllers.xml.

solution

1. Création de la classe java Test1Controller qui étend AbstractContextAwareController :

Bloc de code
avec une méthode callback :
/**
 * JSF callback.
 * @return A String.
 */
public String callback() {
  return "gotoWelcome";
}

2. Déclaration du bean dans le fichier controller.xml :

Bloc de code
<bean id="test1Controller"
      class="org.esupportail.formation.web.controllers.Test1Controller"
      parent="abstractContextAwareController"
      scope="session">
  <description>A bean to manage the test1 page.</description>
</bean>

3. Modification du contenu de test1.jsp:

Bloc de code
<%@include file="_include.jsp"%>
<%@include file="_navigation.jsp"%>
  <h:form>
    <h:commandButton value="Move"
	action="#{test1Controller.callback}"/>
  </h:form>

...