Comment valider le format de date dans un formulaire de Printemps

Je suis nouveau sur le Printemps, et je suis en train de créer un formulaire qui permet de valider un format de date (c'est à dire: il n'accepte que des dates au format "MM/dd/yyyy" si l'utilisateur met "mm-dd-yyyy" il doit afficher un message d'erreur).

Comment puis-je y arriver avec le Printemps?

J'ai lu beaucoup de messages et de réponses comme cette et cette, qui recommande l'utilisation de la @InitBinder dans le contrôleur (j'ai essayé mais je ne pouvais pas le faire fonctionner, btw). Mais que faire si j'ai un formulaire avec des dates différentes? ou si mon contrôleur gère plusieurs post de demande de formes différentes, et chacun des dates différentes validations?

Actuellement, j'ai cette forme:

<form:form action="getReportFile.html" commandName="staticReportForm">
            <table>
                <tr>
                    <td>Reports:</td>
                </tr>
                <tr>
                    <td><form:select path="report" items="${staticReports}"/>                        
                    </td>
                </tr>
               <tr>
                   <td>Date (MM/DD/YYYY) (empty for most recent possible):<FONT color="red"><form:errors
                                path="date" /></FONT></td>
               </tr>
               <tr>
                   <td><form:input path="date" /></td>
               </tr>
               <tr>
                   <td><input type="submit" value="Submit" /></td>
               </tr>
           </table>            
       </form:form>

Et ce serait la fève de la sauvegarde de la forme (la @DateTimeFormat annotation seulement le faire fonctionner si vous mettez le format correct):

public class StaticReportForm {
        @NotEmpty        
        private String report;    
        @DateTimeFormat(pattern="MM/dd/yyyy")
        private Date date;

    public String getReport() {
        return report;
    }

    public void setReport(String report) {
        this.report = report;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }


}

OriginalL'auteur Christian Vielma | 2013-02-05