Affichage conditionnel des composants JSF

Tout d’abord, je suis nouveau sur Java EE, issu d’un arrière-plan de développement ASP .NET solide. Je suis passé par le net et cela pourrait me manquer, mais il semble qu’il n’y ait pas de tutoriels simples et précis sur la façon dont je pourrais connecter la classe de bean backing à un composant JSF.

Un bon exemple est le suivant: actuellement, je tente de créer une page JSF contenant un ensemble de liens sous forme de barre de menus et un ensemble de formulaires. Ce que je prévois de faire est que, en cliquant sur un lien, un formulaire particulier sera rendu.

Dans ASP.NET, je pouvais facilement récupérer l’élément puis définir l’atsortingbut pour qu’il puisse être affiché. Je me demande s’il y a un moyen facile de faire cela dans JSF.

Les formulaires sont déjà dans la page, il suffit juste de définir l’atsortingbut “render” sur true lorsque je clique sur un lien particulier.

Oui, utilisez l’atsortingbut rendered .

  

En général, vous l’associez au modèle plutôt que de laisser le modèle saisir le composant et le manipuler.

Par exemple

        

Notez l’importance des opérateurs EL basés sur des mots clés tels que gt , ge , le et lt au lieu de > , >= , <= et < car les crochets < et > sont des caractères réservés en XML. Voir aussi cette Q & A associée: Erreur lors de l'parsing XHTML: le contenu des éléments doit être constitué de données de caractères ou de balises bien formées .

En ce qui concerne votre cas d'utilisation spécifique, supposons que le lien passe un paramètre comme ci-dessous:

 link 

Vous pouvez ensuite afficher le formulaire ci-dessous:

  

(le #{param} est un object EL implicite faisant référence à une Map représentant les parameters de la requête)

Voir également:

  • Tutoriel Java EE 6 - Langage d'expression
  • Comment afficher les composants JSF si la liste n'est pas nulle et a la taille ()> 0
  • Pourquoi dois-je imbriquer un composant avec render = "# {some}" dans un autre composant lorsque je veux le mettre à jour avec ajax?

En plus du message précédent, vous pouvez avoir

   

Jsf 2.0