2015-03-05 2 views
0

Я использую@NumberFormat Аннотация для консоли

@NumberFormat(style = Style.CURRENCY) 
private Double value = 50.00; 

в моем проекте Spring MVC. В соответствии с справочной документацией «mvc: annotation-driven»

достаточно, чтобы связывать форматы по умолчанию, такие как @NumberFormat. И я успешно получаю это отображается в моем JSP, но когда я пытаюсь напечатать его утешить в моем контроллере от

System.out.println(value); 

Это не формат значения вообще. В своем исследовании я нашел несколько примеров для JSP, но для консоли не было. Почему он не форматирует номер в консоли?

ответ

1

аргументы метода передаются по значению в Java. Если вы вызываете метод, подобный println, вы просто передаете значение переменной-члена с именем value - не самой переменной.

Метод println не имеет возможности узнать, где значение пришли, так что нет никакого способа для того, чтобы знать, что он пришел из переменной-члена с именем value, что случается иметь аннотацию - метод println не может осмотрите сама переменную и откройте аннотацию, поскольку она не знает, откуда взялось это значение.

Когда вы делаете это в JSP, вы не используете обычные вызовы методов Java, вероятно, вы используете тег Spring, для которого вы передаете имя переменной. Затем обработчик тегов Spring будет искать переменную и найти аннотацию, которую он использует, чтобы определить, как форматировать значение.

+0

Большое спасибо за ваш ответ. Удачного дня. – user961690

Смежные вопросы