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 :

Optimisation du code dans une page JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué Avatar de nikalkal
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 231
    Points : 166
    Points
    166
    Par défaut Optimisation du code dans une page JSP
    Bonjour,

    j'ai une appli struts,spring,hibernate.

    Une base mysql avec une table voiture qui contient des voitures.

    Je réalise une jsp qui doit lister toutes les voitures de ma base et j'y arrive mais je suis sur que mon code est bien crade.

    J'aimerais savoir comment optilmiser le traitement java dans ce code.

    Ma jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ page import="org.hibernate.*" %>
    <%@ page import="java.util.*" %>
    <%@ page import="fr.gestentrep2.voitures.pojos.*" %>
     
    <%@ include file="../conf/header.jsp" %>
    <div id="infobulle">bubble</div>
     
        <div id="identification">
            <%@ include file="../conf/menu.jsp" %>
        </div>
     
        <h1>Modification de voitures</h1>
        <h3>Voi&ccedil;i la liste des voitures existantes, cliquez sur l'ic&ocirc;ne pr&eacute;c&eacute;dant la voiture pour la modifier. </h1>
     
        <div id="identification">
            <table>
     
            <tr>
                <td width="30"></td>
                <td width="30"></td>
                <td width="30"></td>
                <td width="10"></td>
                <td width="200"><b>Nom</b></td>
                <td width="200"><b>Modele</b></td>
                <td width="200"><b>Ann&eacute;e</b></td>
                <td width="200"><b>Kilom&eacute;trage</b></td>
            </tr>
     
        <%  
            int idTemp;
            List result = mgrVoiture.getListeVoitures();
            for(int i=0 ;i<result.size(); i++) {
                theVoiture = (Voiture) result.get(i) ;
                idTemp = theVoiture.getId();
        %>
                <jsp:useBean id="monBean" scope="page" class="fr.gestentrep.voitures.Voiture" />
                <jsp:setProperty name="monBean" property="id" value="<%=idTemp%>" />
     
                <tr>
                <td width="30"><br /><html:link page="/formulaireSuppresionVoiture.do" paramName="monBean" paramId="voitureId" paramProperty="id" onmouseover="javascript:see_bubble('supprimer');" onmouseout="javascript:kill_bubble();"><img src="/gestentrep/images/logo.gif" width="40" height="30"></img></html:link></td>
                <td width="30"><br /><html:link page="/formulaireModificationVoiture.do" paramName="monBean" paramId="voitureId" paramProperty="id" onmouseover="javascript:see_bubble('modifier');" onmouseout="javascript:kill_bubble();"><img src="/gestentrep/images/logo.gif" width="40" height="30"></img></html:link></td>
                <td width="30"><br /><html:link page="/listeEntretients.do" paramName="monBean" paramId="voitureId" paramProperty="id" onmouseover="javascript:see_bubble('liste des entretients');" onmouseout="javascript:kill_bubble();"><img src="/gestentrep/images/liste.gif" width="40" height="30"></img></html:link></td>
                <td width="10"></td>
                    <td>
                        <br /><%=theVoiture.getNom()%> <br />
                    </td>
                    <td>
                        <br /><%=theVoiture.getModele()%> <br />
                    </td>
                    <td>
                        <br /><%=theVoiture.getAnnee()%> <br />
                    </td>
                    <td>
                        <br /><%=theVoiture.getKilometrage()%> <br />
                    </td>
                </tr>
            <%    } %>
        </table></div>
     
    <%@ include file="../conf/footer.jsp" %>
    Içi (mon projet version1) j'utilisais un VoitureManager qui me fournissait la liste des de mes voitures mais je n'en ai plus dans ma version2 mieux organisée (intégation de spring).

    Je suis conscient que ce code doit être affreux et j'aimerais savoir comment l'optimiser.

    Merci d'avance @+

  2. #2
    Membre habitué Avatar de nikalkal
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 231
    Points : 166
    Points
    166
    Par défaut
    Déja j'ai une autre question et je vais préciser comment est organisé mon projet maintenant:

    J'ai une classe ISpringVoitureService qui me fournit (par délégation) mes services hibernate (recherche en base de donnée) déclaré transactionels pour spring.

    Lorsque mon traitement résulte d'une action struts je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public class FormulaireCreationVoitureAction extends Action {
        
        private ISpringVoitureService voitureService;
    
        public FormulaireCreationVoitureAction() {
            super();
        }
    
        public void setServlet(ActionServlet actionServlet) {
            super.setServlet(actionServlet);
            ServletContext servletContext = actionServlet.getServletContext();
            WebApplicationContext wac =
                WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
            this.voitureService = (ISpringVoitureService) wac.getBean("myVoitureService");
        }
        
        public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException {
            HttpSession sessionGlobale = request.getSession(true);
            if(sessionGlobale.getAttribute("droits")==null) {
                return mapping.findForward("index");
            } else {
                FormulaireCreationVoitureBean formulaire=(FormulaireCreationVoitureBean)form;
                request.setAttribute("nom",formulaire.getNom());
                request.setAttribute("modele",formulaire.getModele());
                request.setAttribute("annee",formulaire.getAnnee());
                request.setAttribute("kilometrage",formulaire.getKilometrage());
        
                getVoitureService().createVoiture(formulaire.getNom(),formulaire.getModele(),formulaire.getAnnee(),formulaire.getKilometrage());
    
    
            }
            return mapping.findForward("reponseCreationVoiture");
        }
    
        protected ISpringVoitureService getVoitureService() {
            return voitureService;
        }
    
    }
    Dans ce cas, ma méthode setServlet me permet de faire appel à mon service spring (myVoitureService).

    Déja dans une jsp comment dois-je faire pour faire appel à ce service?

  3. #3
    Membre habitué Avatar de nikalkal
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 231
    Points : 166
    Points
    166
    Par défaut
    Suis-je obligé de créer une classe de type Action que j'appelerait depuis ma jsp?

  4. #4
    Membre habitué Avatar de nikalkal
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 231
    Points : 166
    Points
    166
    Par défaut
    Bon en fait j'ai réussit à résoudre mon problème mais je ne suis pas satisfait par mon code.
    J'ai l'impression que c'est du JSP fait à l'arrache

    J'aimerais votre avis.

    Une page JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ page import="java.util.*" %>
    <%@ page import="fr.gestentrep2.voitures.pojos.Voiture" %>
    <%@ page import="fr.gestentrep2.voitures.services.*" %>
    <%@ page import="org.springframework.web.context.WebApplicationContext" %>
    <%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %>
     
    <%@ include file="../conf/header.jsp" %>
    <div id="infobulle">bubble</div>
     
    <%
    if (session.getAttribute("droits")!=null) {
        ServletContext servletContext = getServletContext();
        WebApplicationContext wac =    WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
        ISpringVoitureService voitureService = (ISpringVoitureService) wac.getBean("myVoitureService");
     
        Voiture theVoiture = new Voiture();
    %>
     
     
        <div id="identification">
            <%@ include file="../conf/menu.jsp" %>
        </div>
     
        <h1>Modification de voitures</h1>
        <h3>Voi&ccedil;i la liste des voitures existantes, cliquez sur l'ic&ocirc;ne pr&eacute;c&eacute;dant la voiture pour la modifier. </h1>
     
        <div id="identification">
            <table>
     
            <tr>
                <td width="30"></td>
                <td width="30"></td>
                <td width="30"></td>
                <td width="10"></td>
                <td width="200"><b>Nom</b></td>
                <td width="200"><b>Modele</b></td>
                <td width="200"><b>Ann&eacute;e</b></td>
                <td width="200"><b>Kilom&eacute;trage</b></td>
            </tr>
     
        <%  
            int idTemp;
            List result = voitureService.getListeVoitures();
            for(int i=0 ;i<result.size(); i++) {
                theVoiture = (Voiture) result.get(i) ;
                idTemp = theVoiture.getId();
        %>
                <jsp:useBean id="monBean" scope="page" class="fr.gestentrep2.voitures.pojos.Voiture" />
                <jsp:setProperty name="monBean" property="id" value="<%=idTemp%>" />
     
                <tr>
                <td width="30"><br /><html:link page="/formulaireSuppresionVoiture.do" paramName="monBean" paramId="voitureId" paramProperty="id" onmouseover="javascript:see_bubble('supprimer');" onmouseout="javascript:kill_bubble();"><img src="/gestentrep/images/logo.gif" width="40" height="30"></img></html:link></td>
                <td width="30"><br /><html:link page="/formulaireModificationVoiture.do" paramName="monBean" paramId="voitureId" paramProperty="id" onmouseover="javascript:see_bubble('modifier');" onmouseout="javascript:kill_bubble();"><img src="/gestentrep/images/logo.gif" width="40" height="30"></img></html:link></td>
                <td width="30"><br /><html:link page="/listeEntretients.do" paramName="monBean" paramId="voitureId" paramProperty="id" onmouseover="javascript:see_bubble('liste des entretients');" onmouseout="javascript:kill_bubble();"><img src="/gestentrep/images/liste.gif" width="40" height="30"></img></html:link></td>
                <td width="10"></td>
                    <td>
                        <br /><%=theVoiture.getNom()%> <br />
                    </td>
                    <td>
                        <br /><%=theVoiture.getModele()%> <br />
                    </td>
                    <td>
                        <br /><%=theVoiture.getAnnee()%> <br />
                    </td>
                    <td>
                        <br /><%=theVoiture.getKilometrage()%> <br />
                    </td>
                </tr>
            <%    } %>
        </table></div>
    <% } else {    %>
        <script> location.replace("/gestentrep2/vues/index.jsp"); </script>
    <% } %>
     
    <%@ include file="../conf/footer.jsp" %>
    Please dites-moi au moins si c'est bien codé ou si çà craint...

    Merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/11/2006, 22h06
  2. [Sécurité] comment récupérer le subject dans une page jsp?
    Par lalakers dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 13/07/2005, 12h42
  3. inserer une page php externe dans une page JSP
    Par vrossi59 dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 05/07/2005, 17h25
  4. [XML][XSL][Mozilla Firefox] Integraton dans une page JSP
    Par BANATACH dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 05/08/2004, 15h46
  5. [Debutant(e)]Appel d'une servlet dans une page jsp
    Par kouadjalain dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 20/07/2004, 16h02

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