IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Inclusion du "head": quelle bonne pratique


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Inclusion du "head": quelle bonne pratique
    Bonjour,

    jusqu'ici, les vieilles applications sur lesquelles je travaillais avaient un "head_include.jsp" qui inclut tout le header HTML et tout le menu/bandeau de l'appli web. Ca marchait pas mal, et même si c'était pas conseillé, le code JS/CSS encapsulé spécifique à chaque mage était dans la jsp de la page et donc dans le body. Ca marchait pas mal..

    j'aimerais être "plus propre" sur une nouvelle application où je peux me permettre de réviser les bonnes pratiques dès le début. Qui plus est, Jquery est apparemment plus sensible que les libs que j'utilisait auparavant.


    J'aimerais donc savoir quelles sont les solutions techniques préconisées pour gérer un head et un bandeau du body le plus proprement possible en minimisant le code spécifique à la page.
    Faut-il redéclarer le header systématiquement voir utiliser des custom tags pour "alléger" le code ? Quelles sont les solutions les plus élégantes pour bien factoriser le code et le conserver le plus lisible et maintenable ?

    merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Regarde du côté de Tiles
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Ok

    Je vais jeter un oeil. J'avais croisé un peu de code Tiles en TMA dans du Struts, ca ressemble pas mal au templates JSF de mémoire.

    J'avais en tête que pour un site comme le mien ou j'ai juste un header avec un menu déroulant (application web intra) c'était un peu surdimensionné et que ca faisait pas grand chose de plus que du include...

    Merci

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    C'est pas faux...

    D'un autre côté, ça dépend un peu de ce que fait ton header, s'il devrait s'adapter à la page ou s'il est systématiquement le même, etc...
    Si c'est statique, tu peux utiliser <jsp:include> ou <%@ include>, je ne vois pas ce qui gêne...
    Pour les scripts, tout ce qui est commun "devrait" être dans le <head>, pour le spécifique, dans la page... sous forme externe ou inline, ça dépend aussi de la taille des script. S'ils sont volumineux, il vaudrait mieux utiliser un fichier externe (il sera chargé du cache ensuite)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    le "header" en tant que composant graphique est "commun" à l'ensemble de l'application: même bandeau pour tout le monde.
    Pour autant, il est dynamique: ex: affichage de l'utilisateur connecté, gestion de messages affichés à l'utilisateur, etc.

    Par contre, le "head" de l'image en tant qu'inclusion de style et de JS est variable en fonction des pages pour éviter d'importer un datatable partout, un fichier avec les villes et codes postal, etc.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Points : 1 370
    Points
    1 370
    Par défaut
    Hello,

    Tu peux passer des paramètres lors de l'inclusion d'une jsp :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <jsp:include page="navMenu.jsp" >
        <jsp:param name="title" value="Home" />
    </jsp:include>

    Du coup tu auras que ce qui change dans ta page.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Farid63 Voir le message
    Hello,

    Tu peux passer des paramètres lors de l'inclusion d'une jsp :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <jsp:include page="navMenu.jsp" >
        <jsp:param name="title" value="Home" />
    </jsp:include>

    Du coup tu auras que ce qui change dans ta page.
    Ok merci. C'est une bonne idée, mais le problème, c'est qu'il s'agit de code HTML.

    Pour une bonne lisibilité, il faudrait que je puisse faire un truc du genre:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <jsp:include page="navMenu.jsp" >
        <jsp:param name="title">Ici mon code HTML correspondant à la "value" plus lisible et supportant balises, scripts HTML, etc.</jsp:param>
    </jsp:include>

    Y'a moyen ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Points : 1 370
    Points
    1 370
    Par défaut
    Il semblerai que non.

    Par contre tu peux passer des paramètres comme ci-dessus et faire un if dans la jsp incluse et ajouter ton code si la variable est présente.

    exemple :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <jsp:include page="home.jsp" >
        <jsp:param name="jquery" value="true" />
    </jsp:include>

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <c:if test="${jquery}">
        <script src="..."></script>	       
    </c:if>

    Tu peux aussi utiliser la JSTL pour faire :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <c:import url="home.jsp">
        <c:param name="jquery" value='<script scr="monfichier.js"></script> '/>
    </c:import>

    Par contre, ça marche bien pour la balise <h1> mais la balise <script> n'est pas interprétée.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Ok merci

    Si j'ai le temps, je regarderai si y'a moyen de faire une indirection un peu propre pour ce genre de chose et pour éviter qu'il y a une dépendance du include vers les appelant...

    Merci

  10. #10
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 70
    Points : 67
    Points
    67
    Par défaut
    Apache Velocity aussi peut être une bonne solution

Discussions similaires

  1. [EJB] Quelles bonnes pratiques pour utiliser les transactions "en ligne"?
    Par kisitomomotene dans le forum Java EE
    Réponses: 1
    Dernier message: 12/12/2011, 20h22
  2. Quelles sont les bonnes pratiques avec Zend Framework ?
    Par Community Management dans le forum Zend Framework
    Réponses: 14
    Dernier message: 02/02/2009, 20h35
  3. [C#/ASP.Net/DAL] Quelles sont les bonnes pratiques ?
    Par fouhaa dans le forum Accès aux données
    Réponses: 4
    Dernier message: 13/07/2006, 23h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo