I hade the same problem, I have tried customizing the error message in case of typeMismatch and it works fine.
But I still get the error message of the validation atfter that :!:
Invoice date is a required field.
Validation is not supposed to be done for a field with type mismatch. :?:
Note that the above is only displayed in case of binding all messages
Code:
<spring:bind path="invoice.*">
<c:if test="${not empty status.errorMessages}">
<div class="error">
<c:forEach var="error" items="${status.errorMessages}">
<c:out value="${error}" escapeXml="false"/><br />
</c:forEach>
</div>
</c:if>
</spring:bind>
But in case of binding only the message of invoice.date I only get the "Invalid date entry" message
Code:
<spring:bind path="invoice.date">
<input type="text" name="${status.expression}" value="${status.value}"/>
<span class="fieldError">${status.errorMessage}</span>
</spring:bind>
But still, validation is done in both cases.