С @NumberFormat
документы :
Объявляет, что поле должно быть отформатировано как число.Поддерживает форматирование по стилю или пользовательской строке шаблона. Может применяться к любому JDK java.lang.Number типа .
Вы используете его в примитивном поле.Видимо, это не покрыто.Используйте Integer
вместо int
.
Правка: точнее, не все возможные подклассы java.lang.Number
охватываются.Вот соответствующая выдержка из NumberFormatAnnotationFormatterFactory
:
public NumberFormatAnnotationFormatterFactory() {
Set<Class<?>> rawFieldTypes = new HashSet<Class<?>>(7);
rawFieldTypes.add(Short.class);
rawFieldTypes.add(Integer.class);
rawFieldTypes.add(Long.class);
rawFieldTypes.add(Float.class);
rawFieldTypes.add(Double.class);
rawFieldTypes.add(BigDecimal.class);
rawFieldTypes.add(BigInteger.class);
this.fieldTypes = Collections.unmodifiableSet(rawFieldTypes);
}
Это означает, что отсутствуют классы Atomic * из параллельного API, а также все пользовательские реализации Number из каркасов, таких как Commons /Lang и т. Д.
Обновление: (см. Комментарии) также необходимо добавить <mvc:annotation-driven>
в ваш context.xml.