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

Spring Web Java Discussion :

[débutant] Formulaire avec Spring


Sujet :

Spring Web Java

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 20
    Points
    20
    Par défaut [débutant] Formulaire avec Spring
    Bonjour à tous,

    Je voudrai savoir pourquoi lorsqu'on crée un formulaire geré par spring, selon certains tutoriels sur internet, on voit que certain utilise JstlView et que d'autre RedirectView?

    D'après ce que j'ai compris, la JstlView sert à afficher la vue tandis que la RedirectView sert à rediriger vers un contrôleur. Mais bon c'est un peu confus tout ça.

    Quelqu'un pourrait m'éclairer svp

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Bonjour,

    Spring se base sur le modèle MVC. Du coup, le contrôleur utilise un ViewResolver pour savoir comment il doit gérer la vue => type de contenu/redirection/....
    Il existe après différents types de resolver qui auront chacun des particularités (tout est dans la doc).
    Si tu veux utiliser les librairies de tag standard par exemple, tu paramètres ton resolver avec la classe JstlView indiquant ainsi que la page JSP est susceptible de contenir des balises <c:if> <c:choose> ... par exemple. Ainsi le resolver ne sera pas désarsonné de voir ça et saura comment il doit les interpréter.
    Voilou

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    Bonjour cyberface,

    En complément de la réponse de zorm sur la 'spécialisation' des Viewers 'optimisé', je te recommande 2 tutos pour montée en compétence spring MVC :
    - Introduction à Spring MVC : http://www.objis.com/formation-java/spip.php?article79
    - Formulaire Spring MVC : http://www.objis.com/formation-java/spip.php?article81

    Douglas.

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    Merci à vous pour vos réactions

    MMmmh C'est déjà plus clair maintenant, je vais aller faire un tour sur le site objis qui m'a l'air pas mal.

    On the road again

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    J'ai un petit soucis avec lors d'un essai avec un formulaire pris du tutoriel de Serge Tahe en utilisant la methode RedirectView ou Jstlview

    en fait j'ai un formulaire de bouton comme welcome page
    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
    <%@ page language="java" pageEncoding="ISO-8859-1" contentType="text/html;charset=ISO-8859-1" %>
    <%@ include file="tagLib.jsp" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <link href="<%=request.getContextPath()%>/css/employeeMenu.css" rel="stylesheet" type="text/css" />
    </head>
     
    <body>
    <div id="container">
      <div id="formMenu">
      <form method="get" action="<c:url value="/employeeMenu.html"/>">
      	<table width="200" border="0">
    	  <tr>
        	<td><input type="submit" name="addClient" value="&nbsp" class="buttonAdd"/></td>
        	<td>&nbsp;</td>
    	    <td><input type="submit" name="editClient" value="&nbsp" class="buttonEdit"/></td>
    	  </tr>
    	  <tr>
    	    <td>&nbsp;</td>
        	<td><input type="submit" name="searchClient" value="searchClient"/></td>
    	  </tr>
    	</table>
      </form>
     </div>
    </div>
    </body>
    </html>
    Quand je clique sur "add client" il devrait se rediriger vers une url
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8080/springIbatis/addClient.html?idClient=-1
    Si le idClient de l'url est différent de -1 alors on remplit le formulaire avec les donnée contenue dans la base de données pour qu'on puisse modifier l'enregistrement

    voici son contrôleur
    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
    package webapp.clients.web;
     
    import org.springframework.web.servlet.*;
    import org.springframework.web.servlet.mvc.*;
     
     
    import javax.servlet.http.*;
     
    public class EmployeeMenu implements Controller {
        public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {
            if(request.getParameter("addClient")!=null)
                return new ModelAndView("addClient");
            if(request.getParameter("editClient")!=null)
                return new ModelAndView("test");
     
     
            return new ModelAndView("employeeMenu");
        }
    }
    voici mon fichier vue.properties
    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
    #list
    list.class=org.springframework.web.servlet.view.JstlView
    list.url=/WEB-INF/vues/list.jsp
     
    #r.list
    r-list.class=org.springframework.web.servlet.view.RedirectView
    r-list.url=/list.html
    r-list.contextRelative=true
    r-list.http10Compatible=false
     
    #edit
    edit.class=org.springframework.web.servlet.view.JstlView
    edit.url=/WEB-INF/vues/edit.jsp
     
    #exception
    exception.class=org.springframework.web.servlet.view.JstlView
    exception.url=/WEB-INF/vues/exception.jsp
     
    #addClient
    addClient.class=org.springframework.web.servlet.view.JstlView
    addClient.url=/WEB-INF/vues/addClient.jsp
     
    #editClient
    editClient.class=org.springframework.web.servlet.view.JstlView
    editClient.url=/WEB-INF/vues/editClient.jsp
     
    #employeeMenu
    employeeMenu.class=org.springframework.web.servlet.view.JstlView
    employeeMenu.url=/WEB-INF/vues/employeeMenu.jsp
     
    #reussis
    reussis.class=org.springframework.web.servlet.view.JstlView
    reussis.url=/WEB-INF/vues/ok.jsp
     
     
    #admin
    admin.class=org.springframework.web.servlet.view.JstlView
    admin.url=/WEB-INF/vues/adminMenu.jsp
     
    #test
    test.class=org.springframework.web.servlet.view.RedirectView
    test.url=/employeeMenu.html
    voici le fichier de config spring
    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
    78
    79
    80
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
    	<!-- mappings de l 'application -->
    	<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    		<property name="mappings">
    			<props>
    				<prop key="/list.html">Clients.ListController</prop>
    				<prop key="/delete.html">Clients.DeleteController</prop>
    				<prop key="/edit.html">Clients.EditController</prop>
    				<prop key="/employeeMenu.html">Employee.Menu</prop>
    				<prop key="/addClient.html">Clients.EditController</prop>
    				<prop key="/editClient.html">Clients.EditController</prop>
    			</props>
    		</property>	
    	</bean>
     
    	<!--  les controleurs -->
     
    	<bean id="Employee.Menu" class="webapp.clients.web.EmployeeMenu"/>
    	<bean id="Clients.ListController" class="webapp.clients.web.ListClient">
    		<property name="service">
    			<ref bean="service"/>
    		</property>
    	</bean>
     
    	<bean id="Clients.DeleteController" class="webapp.clients.web.DeleteClient">
    		<property name="service">
    			<ref bean="service"/>
    		</property>
    	</bean>
     
    	<bean id="Clients.EditController" class="webapp.clients.web.EditClient">
    		<property name="service">
    			<ref bean="service"/>
    		</property>
    		<property name="sessionForm">
    			<value>true</value>
    		</property>
    		<property name="commandName">
    			<value>client</value>
    		</property>
    		<property name="formView">
      			<value>addClient</value> 
      		</property>
    	<!-- 	<property name="validator">
    			<ref bean="Clients.Validator"/>
    		</property>-->
    	</bean>
     
    	<!-- le validateur -->
    	<bean id="Clients.Validator" class="webapp.clients.web.ValidateClient"/>
     
    	<!-- le resolveur de vue -->
     	<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
    		<property name="basename">
    			<value>vues</value>
    		</property>
    	</bean>
     
    	<!-- gestionnaire d exceptions -->
    	<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    		<property name="exceptionAttribute">
    			<value>exception</value>
    		</property>
    		<property name="defaultStatusCode">
    			<value>200</value>
    		</property>
    		<property name="defaultErrorView">
    			<value>exception</value>
    		</property>
    	</bean>
     
    	<!-- le fichier de message -->
    	<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    		<property name="basename">
    			<value>messages</value>
    		</property>
    	</bean>	
    </beans>
    Le problème est quand lorsque j'utilise le RedirectView la page se charge en boucle alors que si je mets JstlView, ça fonctionne.

    Pourquoi????

    Merci d'avance à tous

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    voici la réponse :cool:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #test
    test.class=org.springframework.web.servlet.view.RedirectView
    test.url=employeeMenu.html
    C'était le backslash qui faisait des misères dans l'url

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/05/2015, 13h10
  2. [MVC] Gestion des formulaires avec Spring MVC
    Par schumi2k2 dans le forum Spring Web
    Réponses: 0
    Dernier message: 23/08/2012, 15h26
  3. Validation de formulaire avec spring 2.5 et struts 2
    Par miles_ dans le forum Spring Web
    Réponses: 4
    Dernier message: 02/02/2010, 18h27
  4. Réponses: 1
    Dernier message: 25/05/2009, 00h01
  5. [TASM][Débutant] Formulaire avec temps de réponse
    Par Punkfloyd1967 dans le forum x86 16-bits
    Réponses: 0
    Dernier message: 18/08/2008, 14h38

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