Projets
Pages enfant
  • 3.13.2 Déchiffrer les URLs directes pour positionner l'application dans un état donné

Vous regardez une version antérieure (v. /wiki/spaces/PROJ/pages/100663589/3.13.2+D%C3%A9chiffrer+les+URLs+directes+pour+positionner+l+application+dans+un+%C3%A9tat+donn%C3%A9) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) afficher la version suivante »

Déchiffrer les URLs directes pour positionner l'application dans un état donné

Du point de vue du programmeur, l'appréhension d'un lien direct consiste à :
  # Décoder les paramètres de l'URL,
  # Positionner les variables d'état (les contrôleurs de l'application) dans un état donné,
  # Envoyer sur la page _JSF_ voulue.

Comment ça marche

   1.  Décrire l'url grâce à l'objet UrlPatternDescriptor dans le fichier properties/deeplinking/deeplinking.xml.
Par exemple pour une url : http://monurl/stylsheets/welcomes.faces?args=validation=true&login=cleprous

<bean id="validateSubscription" class="org.esupportail.commons.jsf.UrlPatternDescriptor">
  <property name="params">
    <list>
      <value>validation</value>
      <value>login</value>
    </list>
  </property>
  <property name="actionBinding" >
     <bean class="org.esupportail.commons.jsf.ActionBinding">
        <property name="action" value="inscriptionController.urlDecrypt"/>
        <property name="args">
           <list>
             <value>java.lang.Boolean</value>
             <value>java.lang.String</value>
           </list>
        </property>
      </bean>
  </property>
</bean>

    * La propriété params définis les paramètres de l'url. L'ordre de paramètre doit être identique à celui dans l'url.
    * La bean actionBinding permet de définir l'action qui va être exécutée. Dans l'exemple la méthode appelée est décrite ci-dessous:

Dans le bean inscriptionController, la méthode :


public String urlDecrypt(Boolean validation, String login) {

 ....

return "go_validation_page"; //cette chaîne décrite dans la navigation-rules et permet de rediriger vers une page


}


* La propriété viewID permet de préciser une chaine de caractère qui va être utilisée dans la redirection.

Cette propriété est prioritaire. Cela signifie que si elle est renseignée, on utilise cette chaîne pour faire la redirection sinon on utilise la chaîne renvoyée par la méthode décrite dans l'ActionBinding

Pour en savoir plus...

Les UrlPatternDescriptor seront analysés par DeepLinkingPhaseListener déclaré dans le cycle de vie JFS dans faces-config.xml :

        <lifecycle>
		<phase-listener>org.esupportail.commons.jsf.DeepLinkingPhaseListener</phase-listener>
		<phase-listener>org.esupportail.commons.jsf.ResourceBundlePhaseListener</phase-listener>
	</lifecycle>
  • Aucune étiquette