Wiosna 3,0 MVCwiosna 3,0 MVC wydaje się być ignorowanie messages.properties
Przede wszystkim, nie znalazłem żadnej dokumentacji dotyczącej messages.properties @springsource Wszystko Znalazłem o nadrzędnych komunikatów o błędach został na różne fora. Jeśli ktoś ma odniesienie do miejsca, gdzie document.properties jest udokumentowane, byłoby fantastycznie. Może messages.properties pochodzi nie z wiosny, ale z specyfikacji java?
Próbowałem po poradę na JSR-303 Type Checking Before Binding Moim celem jest, aby wymienić niektóre komunikaty o błędach typu niezgodność z moich własnych komunikatów o błędach przyjazny dla użytkownika
Moja sytuacja jest następująca:
model
public class Test {
private int numberbomb;
public int getNumberbomb() {
return numberbomb;
}
public void setNumberbomb(int numberbomb) {
this.numberbomb = numberbomb;
}
}
myservlet.xml
<mvc:annotation-driven/>
JSP
<form:form id="test" method="post" modelAttribute="test">
<form:errors path="*"/>
<form:label path="numberbomb">numberbomb</form:label>
<form:input path="numberbomb"/>
</form:form>
Classes \ messages.properties
typeMismatch=bad value you bad bad person
test.numberbomb=you are driving me crazy with these bad inputs
Wyjście z formularza
Nie można przekonwertować wartości właściwości typu java.lang.String do wymaganego typu int na nieruchomości numberbomb; Zagnieżdżony wyjątek to org.springframework.core.convert.ConversionFailedException: Nie można przekonwertować wartości "three" z typu java.lang.String na typ int; wyjątek zagnieżdżonych jest java.lang.NumberFormatException: Dla ciągu wejściowego: "trzy"
BindingResult.toString() w moim kontrolera
błąd w pole obiektu 'test' w polu 'numberbomb': odrzucone wartość [trzy]; kody [typeMismatch.test.numberbomb, typeMismatch.numberbomb, typeMismatch.int, typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [test.numberbomb, numberbomb]; argumenty []; domyślna wiadomość [numberbomb]]; domyślna wiadomość [Nie udało się przekonwertować wartości właściwości typu "java.lang.String" na wymagany typ "int" dla właściwości 'numberbomb'; Zagnieżdżony wyjątek to org.springframework.core.convert.ConversionFailedException: Nie można przekonwertować wartości "three" z typu 'java.lang.String' na type 'int'; wyjątek zagnieżdżonych jest java.lang.NumberFormatException: Dla ciągu wejściowego: „trzy”]
jest wyświetlanie komunikatów o błędach z <form:errors>
źle niestandardowe komunikaty o błędach wyświetlane sposób? Czy muszę dodać coś do wiosennych plików konfiguracyjnych, aby poinformować, że powinien przejrzeć plik messages.properties? Wiosna wydaje się ignorować mój plik messages.properties (który znajduje się w folderze WEB-INF \ classes)
Dzięki za wszelkie pomysły!
Ten powód można znaleźć w dokumentacji! - http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/support/ReloadableResourceBundleMessageSource.html - "..obsługuje ponowne ładowanie plików właściwości poprzez ustawienie" cacheSeconds ", a także poprzez programowe kasowanie pamięci podręcznej właściwości Ponieważ serwery aplikacji zwykle buforują wszystkie pliki załadowane ze ścieżki klasy, konieczne jest przechowywanie zasobów w innym miejscu (na przykład w katalogu "WEB-INF" aplikacji internetowej) .W przeciwnym razie zmiany plików w Ścieżka klas nie zostanie odzwierciedlona w aplikacji. " – Ross