Question

J'ai beaucoup de fichiers JSP et de back-end dans Tomcat. J'ai 3 versions différentes de JSP avec la même logique à l'intérieur, mais avec des dispositions différentes. Donc, si je change de logique, j’ai trois fichiers JSP à corriger.

Quelle est la bonne solution pour un tel scénario? J'ai pensé à une pile XML et XSLT: le backend ne donne que des données en XML et que pour chaque mise en page, j'ai XSLT qui fait de la magie.

Imaginez simplement que vous deviez fournir un stackoverflow dans différentes langues dans JSP. Logique identique mais mise en page différente.

Pouvez-vous m'indiquer une direction?

Était-ce utile?

La solution

En savoir plus sur MVC (Modèle View Controller) et sur l'idée que JSP devrait en faire partie intégrante et ne contenir aucune logique. La logique appartient à une classe de modèle.

Autres conseils

Ce problème est généralement résolu en utilisant un moteur de modélisation - vous créez des fragments de page plus petits, puis vous déclarez au moteur de modèle que certaines vues doivent être composées de ces parties, assemblées d'une certaine manière.

Les tuiles Struts sont l'exemple classique du monde Java, mais elles vieillissent vraiment et sont cruelles par rapport aux versions plus modernes de Framworks en Java et dans d'autres langages. Tapestry et Wicket sont deux autres plus modernes (ne les ont pas utilisés cependant).

Ne placer que 3 pages en appliquant un cadre Web complet est probablement excessif, mais si votre site s'agrandit ...

Avec les anciens JSP sans aucune sorte de fameworks:

1) Utilisez les contrôleurs pour effectuer le traitement et utilisez uniquement jsp pour afficher les données

2) Utilisez les directives d'inclusion jsp pour inclure l'en-tête, la navigation, le menu, le pied de page et les autres éléments communs / partagés nécessaires à toutes ces mises en page.

Ou / et:

Utilisez les éléments suivants dans le fichier web.xml

    <jsp-property-group>
        <url-pattern>/customers/*</url-pattern>
        <include-prelude>/shared/layout/_layout_customers_top.jsp</include-prelude>
        <include-coda>/shared/layout/_layout_customers_bottom.jsp</include-coda>
    </jsp-property-group>

Le modèle d’URL détermine quels jsps obtiennent quels fragments jsp (partiels en Ruby on Rails) attachés en haut / en bas.

Jetez un coup d’œil aux carreaux.

C’est un domaine problématique très classique et de nombreux concepts et frameworks tentent de traiter ce problème (les frameworks MVC tels que Struts et JSF, SessionBeans pour l’appeler mais). Comme je le soupçonne, vous n'êtes pas vraiment une entreprise Java "évangéliste". Je vais vous donner deux conseils simples.

  1. Vous avez évidemment beaucoup de code redondant dans vos JSP. Extrayez ce code en "réel". Java-Classes et les utiliser sur tous vos JSP. De cette manière, vous pourrez modifier la logique métier à un endroit et la redondance sera moins problématique.

  2. Examinez les feuilles de style en cascade (CSS). C'est le moyen le plus moderne de mettre en page des pages Web. Vous n’avez peut-être même pas besoin de fichiers JSP différents pour des dispositions différentes, si vous avez bien conçu HTML et CSS.

Cordialement

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top