2013-08-17 10 views
0
ActionMessage message = new ActionMessage("ERRORS_MAX_NUMBER",maxNumber); 

Когда это сообщение, наконец, визуализируется как HTML, то maxNumber показан в формате 1.00.000. maxNumber - это нет ',' символ в нем. И после этого, когда текст локализуется на португальском, ',' заменяется на '.' и, следовательно, номер указан как 1.00.000Wierd поведение с оказанием распорок ActionMessage, когда локализованы на португальский

Я не знаю, что происходит. Как объяснить это поведение?

+0

Каков тип maxNumber и его значение? Какова ценность сообщения, хранящегося под ключом ERRORS_MAX_NUMBER? Где вы видите 1,00,000? Где вы видите 1,00.000? –

ответ

0

Это происходит потому, что текущий язык, используемый для форматирования сообщения, изменился после локализации. Если вы хотите сохранить его постоянным, вы должны префикс к указанному локал ключ, например

ActionMessage message = new ActionMessage(Locale.US.toString()+"."+"ERRORS_MAX_NUMBER", maxNumber); 

будет форматировать сообщение для локало "en_US".

+0

Проблема была решена, когда я сделал 'ActionMessage message = new ActionMessage (" ERRORS_MAX_NUMBER ", String.valueOf (maxNumber));' 'maxNumber' здесь имеет тип int. Очевидно, что тип сообщения проверяется, когда jsp обслуживается локализованным контентом, и если его номер его форматируется struts/tiles – harsh