Nous avons une application Web Struts 2 utilisée par presque tous les employés pour gérer et configurer les tâches de notre ferme de serveurs. Nous travaillons sur un plan pour créer un tableau de bord pour les clients, afin qu'ils puissent voir leurs propres travaux, et un affichage très simple de son statut ("en cours", "prêt pour l'épreuvage", "fini", etc.). Toutes les pages que les clients peuvent voir auront beaucoup moins d'informations que les opinions des employés, et il n'y aura aucun moyen de modifier ou de modifier quoi que ce soit. Mais à la fin, ils sont essentiellement deux vues séparées de la même information: une très simple, une plus complexe et contrôlable.Rendre Struts afficher différents JSP pour différents rôles
La façon naïve de le faire, est d'avoir si/elses dans chaque jsp simple:
<s:if test="user.role == 'customer'">
<!-- TODO - Display simple customer view -->
</s:if>
<s:else>
<!-- TODO - Display complex employee view -->
</s:else>
est-il un moyen plus simple de le faire? Puis-je créer deux répertoires distincts de jsps, un nommé "client" et un nommé "employé" (ou par défaut ou quelque chose), puis avoir la clé Struts d'une propriété dans mon action pour décider quel répertoire vérifier?
Ou existe-t-il un autre moyen de le faire?
Pour chaque action, dupliquez toutes les définitions de résultats? C'est une grande application, avec peut-être 50 actions. C'est beaucoup de choses supplémentaires dans le fichier struts.xml, et cela me fait penser qu'il serait plus difficile à maintenir avec toute la duplication. – Plutor
+1 Je pense que c'est une bonne solution, mais je pense que vous devriez consulter http://www.stripesframework.org. C'est comme des entretoises sans le xml. – ScArcher2
Si chaque action réutilise les mêmes vues, alors oui, ce serait beaucoup de duplication de code dans le xml; vous pouvez créer une nouvelle action et l'appeler depuis votre contrôleur au lieu de renvoyer une nouvelle réponse personnalisée. Si chaque action nécessite une vue unique, cette duplication est logique et nécessaire. –