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 :

[Spring MVC] <spring:bind sur combobox


Sujet :

Spring Web Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Points : 62
    Points
    62
    Par défaut [Spring MVC] <spring:bind sur combobox
    Bonjour à tous,

    voici mon petit problème : imaginez un formulaire de recherche dont le résultat de la recherche est affiché juste en dessous. Les critères de recherche sont les suivants :

    - product name : texfield (freetext)
    - product type : combobox
    - product manager : combobox

    L'utilisateur rentre un nom de produit, sélectionne un type de produit et clique sur le bouton search. Le résultat s'affiche mais dans le filtre de recherche seul le product name est gardé. La sélection du type de produit et du product manager a disparu...

    C'est relativement étrange...

    Voici la 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
     
    <form method="post">
    	<table>
    		<tr>
    			<td>
    				<img src="img/blueArrow.gif" width="9" height="8" />&nbsp;<spring:message code="product.type"/>			
    			</td>
    			<td>
    				<spring:bind path="product.type">
    				<SELECT name="<c:out value="${status.expression}"/>" class="formSelect" value="<c:out value="${status.value}"/>">
    					<OPTION value="">&nbsp;</OPTION>
    					<c:forEach items="${sessionScope.types}" var="type">
    						<OPTION value="<c:out value="${type.id}"/>">
    							<c:out value="${type.labelEn}"/>
    						</OPTION>				
    					</c:forEach>
    				</SELECT>
    				</spring:bind>
    			</td>		
    		</tr>
    		<tr>
    			<td>
    				<img src="img/blueArrow.gif" width="9" height="8" />&nbsp;<spring:message code="product.name"/>			
    			</td>
    			<td>
    				<spring:bind path="product.name">
    					<input name="<c:out value="${status.expression}"/>"value="<c:out value="${status.value}"/>" />
    				</spring:bind>			
    			</td>		
    		</tr>
    		<tr>
    			<td>
    				<img src="img/blueArrow.gif" width="9" height="8" />&nbsp;<spring:message code="product.manager"/>			
    			</td>
    			<td>
    				<spring:bind path="product.manager">
    					<SELECT name="<c:out value="${status.expression}"/>" class="formSelect" value="<c:out value="${status.value}"/>">
    						<OPTION value="">&nbsp;</OPTION>				
    						<c:forEach items="${sessionScope.managers}" var="availability">
    								<OPTION value="<c:out value="${manager.id
    										<c:out value="${manager.name}"/>
    								</OPTION>				
    						</c:forEach>				
    					</SELECT>
    				</spring:bind>
    			</td>		
    		</tr>		
     
    		<tr>
    			<td>&nbsp;</td>
    			<td>
    				<input type="submit" class="button" value="Search" name="search"/>&nbsp;
    				<input type="reset" class="button" value="Reset" />
    			</td>
    		</tr>
    	</table>
    </form>
     
    <h1>Results</h1>
     
    ...

    Le pojo contient les attributs suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private String type;
    private String name;
    private String manager;
    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
     
    public class SearchProductController  extends SimpleFormController {
     
     
    	@SuppressWarnings("unchecked")
    	protected Map referenceData(HttpServletRequest request, Object command, Errors errors) throws Exception {
    		Map references = new HashMap();
    		if (request.getParameter("search")!=null) {
    			...
    			Collection <Product> producs = getServiceLocator().getProductService().findProduct(criteria);
    			references.put("products",candidates);
    		}
    		return references;
    	}
     
    	protected boolean isFormChangeRequest(HttpServletRequest request) {
    		return true;
    	}
     
    	protected boolean suppressValidation(HttpServletRequest request) {
    		return false;
    	}
    }
    Merci à tous ceux qui ont essayé ou réussi à m'aider.

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <SELECT name="<c:out value="${status.expression}"/>" class="formSelect" value="<c:out value="${status.value}"/>">
    Je peux me tromper, mais il n'y a pas d'attribut "value" pour la balise <select> en html. La selection se fait par la présenter de selected="true" sur une balise <option>

    Par contre, si tu travaille avec Spring 2.0 ou supérieur, je te conseille de regarder la taglib fournie ( doc )

    elle devrait répondre à tes attentes.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Points : 62
    Points
    62
    Par défaut taglib de spring 2
    Merci beaucoup pour ta réponse! Effectivement la taglib de spring 2 est effectivement plus efficace de ce côté là.

    Merci!

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

Discussions similaires

  1. différence entre Spring MVC et Spring intégré avec JSF
    Par marwa_eniso dans le forum Spring Web
    Réponses: 5
    Dernier message: 15/11/2016, 11h16
  2. Différence entre Spring MVC et Spring intégré avec JSF
    Par marwa_eniso dans le forum Frameworks Web
    Réponses: 3
    Dernier message: 31/08/2010, 07h16
  3. double binding sur combobox >>> possible?
    Par waspy59 dans le forum Windows Presentation Foundation
    Réponses: 16
    Dernier message: 03/11/2009, 23h47
  4. Réponses: 6
    Dernier message: 17/06/2008, 12h04
  5. [Spring MVC] taglib spring:bind qui ne binde pas
    Par Mohicane dans le forum Spring Web
    Réponses: 2
    Dernier message: 23/01/2008, 13h51

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