Validierung mit double-Wert im Frühjahr

Möchte ich überprüfen, score-Wert: 0.00 <= Wert<= 10.00

Verwendet habe ich:

-Modell(Score):

 @Range(min = (long) 0.0, max = (long) 10.0)
 private double score;

-Nachrichten.Eigenschaften:

Range.score.score=Please input 0<= score <=10

-servlet-context.xml:

   <beans:bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <beans:property name="basename" value="messages" />
    </beans:bean>

Aber der Wert = 10.01 bestanden hat die Prüfung ein.

Bitte helfen Sie mir.

  • Natürlich. Casting 10.01 zu long abgeschnitten wird der Wert 10, so dass Sie Ihren check-pass.
  • wie kann ich überprüfen den Wert nur kleiner als oder gleich 10?
  • Nicht mit @Range, das ist sicher.
  • sorry, das ich nicht klar mit Ihrem Vorschlag. Wenn Sie nicht verwenden können, @Spektrum was sollte ich verwenden?
  • Ich glaube, Sie sind mit org.hibernate.validator.constraints.Range, aber ich bin mir nicht sicher. Wenn Sie sind, sehe ich in den docs der Max eine Ebene nach oben das folgende: "Note that double and float are not supported due to rounding errors (some providers might provide some approximative support).". Der einzige, der mit Dezimalstellen die unterstützt wird, ist BigDecimal so vielleicht verwenden @Range(min = new BigDecimal(0.0), max = new BigDecimal(10.0)) private BigDecimal score;? Für Doppel-ich weiß nich..
InformationsquelleAutor Ducthien | 2016-02-17
Schreibe einen Kommentar