Questions sur JSF

Sur quel Design Pattern s'appuit principalement JSF ?
  1. Factory
  2. MVC
  3. Oberserver
  4. Composite

Quel tag peut contenir d'autres tags ?
  1. <f:view>
  2. <h:jsf>
  3. <h:view>
  4. <f:faces>

Quel TagLib n'est pas défini dans JSF ?

  1. Core
  2. HTML
  3. XML
  4. Composite

Quel scope ne fait pas partie de la durée de vie d'un bean ?

  1. ViewScoped
  2. SessionScope
  3. ConversationScoped
  4. ResponseScope


A quoi correspond UIViewRoot ?
  1. C'est un composant d'une facelet.
  2. C'est un arbre de composants JSF qui reflète la hiérarchie de balises HTML.
  3. C'est le composant racine d'un tableau.
  4. C'est un composant qui fait partie de la librairie 'core'.


Quelle affirmation est correcte ?
  1. JSF comme JSP permettent la création de composants graphiques.
  2. JSF comme JSP utilisent le templating.
  3. JSF s'occupe de la validation et de la converstion des valeurs, pas JSP.
  4. JSF et JSP sont des frameworks MVC.


Consernant JSF et Struts, quelle affirmation est correcte ?
  1. Struts ne respecte pas le paradigme MVC.
  2. JSF est un framework basé sur les composants, alors que Struts non.
  3. Tout comme JSF, Struts peut aussi utiliser des librairies de composant.
  4. JSF et Struts utilisent  le design pattern Front Controller.


Dans le cycle de vie d'une page, à quel moment  les valeurs du modèle sont-elles modifiées ?
  1. Lorsque toutes les valeurs des composants ont été affectées et validées, les beans gérés qui leur sont associés peuvent être mis à jour.
  2. Les valeurs sont modifiées dès l'appel du bean managé.
  3. Les valeurs de chaque composant de la page sont modifiées après que l'arbre des composants soit reconstruit.
  4. Les valeurs sont modifiées juste avant le rendu de la réponse.


Comment déclarer le bundle messages ?

1-
 <application>
     <resource-bundle>
         <base-name>
            com.adl.message
         </base-name>
     </resource-bundle>
  </application>

Dans la page JSF :
 <f:loadBundle baseName = ""com.adl.messages"" var=”message”/>

2-
 <application>
     <resource-bundle>
         <base-name>
             com.adl.message
         </base-name>
         <id>message</id>
     </resource-bundle>
  </application>

Dans la page JSF :
<f:loadBundle baseName = ""com.adl.messages"" id=”message”/>

3-
 <application>
     <resource-bundle>
         <base-name>
              com.adl.message
         </base-name>
         <var>message</var>
     </resource-bundle>
  </application>

Dans la page JSF :
 <f:loadBundle baseName = ""com.adl.messages"" var=”message”/>

4- Aucune de ces méthode n'est correcte.


Voici le code de la page index.jsp :

  <%@taglib uri=""http://java.sun.com/jsf/core"" prefix= ""f""%>
  <%@taglib uri =""http://java.sun.com/jsf/html"" prefix=""h""%>
   <f:view>
     <body>
          [...]
     </body>
   </f:view>
</html>
Quel est le code à insérer entre les balises body pour qu'il y est un bouton qui, losrque l'on click dessus, nous amène à la page next.jsp.

1-
<f:form id=""monFormulaire"">
     <f:commandButton value=""Go next page"" action=""next""/>
  </f:form>

2-
<f:form id=""form"">
    <h:commandButton value=""Go next page"" action=""next.jsp""/>
  </f:form>

3-
 <h:form id=""form"">
    <h:commandButton value=""Go next page"" action=""next""/>
  </h:form>

4- Aucune de ces méthode n'est correcte, car il faut que l'attribut action appelle une méthode du bean managé pour que celle-ci redirige vers la page next.jsp.


Quelle est la syntaxe correcte pour cette règle de navigation ?

1-
<navigation-rule>
 <from-view>/EntryPage.jsp</from-view>
 <navigation-case>
  <from-outcome>viewdata</from-outcome>
  <to-view>/DataViewPage.jsp</to-view>
 </navigation-case>
</navigation-rule>

2-
<navigation-rule>
 <from-view-id>/EntryPage.jsp</from-view-id>
 <navigation-case>
  <from-outcome>viewdata</from-outcome>
  <to-view-id>/DataViewPage.jsp</to-view-id>
 </navigation-case>
</navigation-rule>

3-
<navigation-rule>
 <from-view-id>EntryPage</from-view-id>
 <navigation-case>
  <from-outcome-id>viewdata</from-outcome-id>
  <to-view-id>DataViewPage</to-view-id>
 </navigation-case>
</navigation-rule>

4-
<navigation-rule>
 <from-view-id>EntryPage</from-view-id>
 <navigation-case>
  <from-outcome>viewdata</from-outcome>
  <to-view-id>/DataViewPage</to-view-id>
 </navigation-case>
</navigation-rule>


Quelles est la bonne affirmation concernant le rendu de la réponse ?
  1. La phase de rendu de la réponse n'existe que dans le cas d'un GET.
  2. La phase de rendu de la réponse n'existe que dans le cas d'un POST.
  3. Après avoir  sauvegardé l’état de la vue pour pouvoir la restaurer dans la phase de restauration si l’utilisateur la redemande, la page est renvoyée à l'utilisateur.
  4. Dans le cycle de vie d'une page JSF, il n'y a pas de phase de rendu de la réponse si la phase de validation a retourné une erreur.

Quel Design Pattern n'est pas utilisé par JSF ?
  1. State
  2. Oberserver
  3. Facade
  4. Strategy

Quelle est la bonne configuration pour utiliser JSF 2.2 ?
  1. web.xml et faces-config.xml dans le répertoire WebContent.
  2. web.xml dans le répertoire WEB-INF et faces-config.xml dans le répertoire WebContent.
  3. web.xml dans le répertoire WEB-INF.
  4. faces-config.xml dans le répertoire WEB_INF.


Quelles sont les phases du cycle de vie d'une page JSF ?
 1-
 Restauration de la vue.
 Application des valeurs de la requête.
 Validations.
 Modification des valeurs du modèle.
 Appel de l’application.
 Rendu de la réponse.

2-
 Récupération des valeur de la  requête.
 Application des valeurs de la requête.
 Validations.
 Modification des valeurs du modèle.
 Appel de l’application.
 Rendu de la réponse.

3-
 Récupération des valeur de la  requête.
 Application des valeurs de la requête.
 Conversion.
 Validations.
 Modification des valeurs du modèle.
 Rendu de la réponse.

4- 
 Récupération des valeur de la  requête.
 Application des valeurs de la requête.
 Validations.
 Conversion.
 Modification des valeurs du modèle.
 Rendu de la réponse.


quelle valeur ne peut pas prendre javax.faces.PROJECT_STAGE
  1. Production
  2. Development
  3. Extension
  4. Test

On veut afficher 3 boutons radio horizontalement.

1-
<h:selectMenuRadio layout=""lineDirection"">
 <f:selectItems itemLabel=""choix1"" itemValue=""#{bean.choix1}"" />
 <f:selectItems itemLabel=""choix2"" itemValue=""#{bean.choix2}"" />
 <f:selectItems itemLabel=""choix3"" itemValue=""#{bean.choix3}"" />
</h:selectMenuRadio>

2-
<h:selectOneRadio layout=""inline"">

 <f:selectItem itemLabel=""choix1"" itemValue=""#{bean.choix1}"" />
 <f:selectItes itemLabel=""choix2"" itemValue=""#{bean.choix2}"" />
 <f:selectItem itemLabel=""choix3"" itemValue=""#{bean.choix3}"" />
</h:selectOneRadio>

3-
<h:selectOneRadio layout=""lineDirection"">
 <f:selectItem itemLabel=""choix1"" itemValue=""#{bean.choix1}"" />
 <f:selectItem itemLabel=""choix2"" itemValue=""#{bean.choix2}"" />
 <f:selectItem itemLabel=""choix3"" itemValue=""#{bean.choix3}"" />
</h:selectOneRadio>

4-
<h:selectOneRadio layout=""lineDirection"">
 <f:selectItems itemValue=""choix1"" itemLabel=""#{bean.choix1}"" />
 <f:selectItems itemValue=""choix2"" itemLabel=""#{bean.choix2}"" />
 <f:selectItems itemValue=""choix3"" itemLabel=""#{bean.choix3}"" />
</h:selectOneRadio>



Quelle est la bonne méthode pour créer un validateur ?

1-
* Créer une classe qui implémente l'interface javax.faces.validator.Validator.
* Utiliser le tag <f:validator validatorId="<nom_de_la_class>"/> dans la page JSF.

2-
* Créer une simple classe avec une méthode validate.
* La déclarer dans le fichier faces_config.xml.
* Utiliser le tag <f:validator/> dans le page JSF, avec comme valeur de l'attribut validatorId le nom déclaré dans le fichier faces-config.xml.

3-
* Ecrire une méthode (avec la même signature que l'interface Validator) dans le bean managé.
* Utiliser l'attribut "validate" d'une composant JSF avec le nom de la méthode.
 Ex : <h:inputText value="#{control.name}" id="name" validator="#{control.validatePerson}" />

4-  Aucune de ces méthode n'est correcte.


Lequel de ces validateurs est correcte ?


1-

<h:inputText value="#{bean.name}" >

 <f:validateLength minimum="2" maximum="15" required="true"/>

</h:inputText>

2-
<h:inputText value="#{bean.name}""  required="true">
 <f:validateLength minimum="2" maximum="15"/>
</h:inputText>

3-
<h:inputText value="#{bean.date}">
<f:validateDateTime value="dd/MM/YYYY"/>
</h:inputText>

4-
<h:inputText value=""#{bean.date}"">
<f:validateDateFormat pattern="dd/MM/YYYY"/>
</h:inputText>


A quoi sert javax.faces.CONFIG_FILES ?
  1. A changer le nom ou l'emplacement  du fichier faces_config.xml
  2. A spécifier le nom et l'emplacement de tous les fichiers de configuration de l'application.
  3. A spécifier si oui ou non on veut utiliser le fichier de configuration de JSF.
  4. A spécifier le nombre de fichier de configuration de JSF.

A quoi sert javax.faces.FACELETS_SKIP_COMMENT avec la valeur TRUE ?
  1. Ne traite pas le code entre les balises <!-- -->
  2. Ignorer les commentaires Java.
  3. Ignorer les balises <!-- -->
  4. Ignorer les commanters //.

Laquelle de ces caractéristiques ne peut pas être configurée dans le fichier 'faces-config.xml' ?
  1. Les règles de navigation
  2. Les beans managés
  3. Les composants personnalisés
  4. Le nom de l'application

Quel code est valide ?
1-
<h:inputText id=""txtNom"">
<f:validateLength minimum="3" maximum="15"/>
</h:inputText>

2-
<h:inputText id="txtNom" validateLength="minimum:3;maximum:15;">
</h:inputText>

3-
<h:inputText id="txtNom" required="true" >
<f:validateLength minimum="3" maximum="15"></f:validateLength>
</h:inputText>

4-
<h:inputText id="txtNom" validateLength:{minimum:3,maximum:15}>

</h:inputText>


A quoi correspond l’encodage ?
  1. C'est le processus de convertion d'une chaine de caractère en object java.util.Date..
  2. C'est la génération d’une page HTML à partir de l’arbre des composants.
  3. C'est un attribut du fichier faces-config.xml qui permet de spécifier l'encodage des caractères des pages JSF.
  4. C'est le processus de convertion des valeurs de la requête vers le bon type de son composant.

Selon le code suivant : 
<h:commandLink value="submit" actionListener="#{bean.listener1}"
   action="#{bean.submit}">
    <f:actionListener type="com.example.SomeActionListener" />
    <f:setPropertyActionListener target="#{bean.property}" value="some" />
</h:commandLink> 
Dans quel ordre seront invoquées les méthodes  ?

1-
Bean.listener1(), 
SomeActionListener.processAction(),
Bean.setProperty(), 
et Bean.submit()

2-
Bean.submit(), 
SomeActionListener.processAction(),
Bean.setProperty(), 
et Bean.listener1()

3-
Bean.submit(), 
Bean.listener1(),
Bean.setProperty(), 
SomeActionListener.processAction()

4- Bean.listener1(), 
Bean.setProperty(), 
SomeActionListener.processAction(), 
et Bean.submit()


Quel paramètre de la balise <context-param> n'est pas correcte ?
  1. javax.faces.FACELETS_BUFFER_SIZE
  2. facelets.BUFFER_SIZE
  3. facelets.SKIP_COMMENTS
  4. javax.faces.FACELETS_SKIP_COMMENTS