Bonjour,

Je n'arrive pas a mettre une liste de date dans un select de Spring, ou plutot j'y arrive mais ensuite je ne peux extraire les données
sans une erreur de Binding après avoir fait un Post :


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
 
@RequestMapping(method = RequestMethod.POST)
    public String selectForDisplayList(@ModelAttribute("flightForm") Flight flight,
            Map<String, Object> model) {
 
        // implement your own registration logic here...
 
        // for testing purpose:
        System.out.println("Airp Orig : " + flight.getDepAirpCode());   // Ici pas de problème
        System.out.println("Airp Dest: " + flight.getArrAirpCode());    // Ici pas de problème
       // System.out.println("Date from : " + flight.getColFrom());  
       // System.out.println("Date until : " + flight.getColUntil());
 
        return "flight_table";
    }




Ici j'ai mes select :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<td><form:label path="arrAirpCode">Dest. </form:label></td>
				<td>
					<form:select path="arrAirpCode">
						<form:options items="${searchDestAirport}"/>
					</form:select>
				</td>
 
				<td><form:label path="colFrom">From </form:label></td>
				<td>
					<form:select path="colFrom">
						<form:options items="${searchDateFrom}"/>
					</form:select>
				</td>

dans ma BD MySQL j'ai des dates et je travaille avec Hibernate et dans mon modèle j'ai :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
	private Date colFrom;
	private Date colUntil;

Le message d'erreur :

Field error in object 'flightForm' on field 'colFrom': rejected value [15.07.2013]; codes [typeMismatch.flightForm.colFrom,typeMismatch.colFrom,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [flightForm.colFrom,colFrom]; arguments []; default message [colFrom]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'colFrom'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type java.util.Date for value '15.07.2013'; nested exception is java.lang.IllegalArgumentException]
Field error in object 'flightForm' on field 'colUntil': rejected value [15.07.2013]; codes [typeMismatch.flightForm.colUntil,typeMismatch.colUntil,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [flightForm.colUntil,colUntil]; arguments []; default message [colUntil]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'colUntil'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type java.util.Date for value '15.07.2013'; nested exception is java.lang.IllegalArgumentException]
Je vois bien que Spring essaie de bourrer un string dans une date déclarée dans le modèle, mais cela ne m'aide pas vraiment à aller plus loin
J'ai bien trouvé quelque chose sur la jstl, mais rien qui permette de l'utiliser avec un select.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<fmt:formatDate value="transactions['${colFrom}'].valueTransactionDate"  
                		type="date" 
                		pattern="dd.MM.yyyy"
                		var="theFormattedDate" />
				<td><form:label path="colFrom">From </form:label></td>
				<td>
					<form:select path="colFrom">
						<form:options items="${searchDateFrom}"/>
					</form:select>
				</td>
Est-ce que quelqu'un peut m'aider?