Как интернационализировать сообщение об ошибке преобразования коллекции в Struts2? - PullRequest
0 голосов
/ 26 октября 2011

Была решена связанная проблема, относящаяся к одному полю здесь . Но как настроить сообщение об ошибке преобразования поля коллекции?

Вот пример: На странице JSP у меня есть поле в тип коллекции:

...
<s:iterator value="items" status="m">
<s:hidden name="selitmems[%{#m.index}].id" value="%{id}"/>
<s:textfield name="selitmems[%{#m.index}].quant" size="10"/>
</s:iterator>

Тип товара: List<Item>; тип селитемы - List<SelItem>. Я хочу, чтобы свойство selitmems []. Quant было целочисленным типом. Если конечный пользователь заполняет строку типа «abc» для первого элемента, сообщение об ошибке по умолчанию:

Неверное значение поля для поля "selitmems [0] .quant".

Приведенное выше сообщение не то, что я хочу. В моем случае я бы предпочел обобщить сообщение об ошибке следующим образом независимо от выбранного выбранного элемента:

Пожалуйста, введите целые числа для элементов.

Конечно, было бы здорово, если бы сообщение об ошибке могло изменяться в зависимости от конкретного пункта:

Пожалуйста, введите целое число для первого элемента.

Я пытался добавить некоторые ключи, такие как "selitmems [0] .quant" или "selitmems" в файле свойств, но не могу получить результат. Есть ли способ настроить сообщение об ошибке для поля коллекции в struts2, когда я все еще могу использовать встроенные функции преобразования типов?

1 Ответ

0 голосов
/ 26 октября 2011

Попробуйте использовать атрибут «label».Вы можете поиграть в некоторые ... интересные игры, такие как (не проверено, но близко):

label="%{getText('selitem.quantity', { #m.index })}"

Файл свойств будет содержать:

selitem.quantity=Item #{0}

Вы можете изменить конверсиюсообщение об ошибке, как описано здесь , хотя это может быть не совсем то, что вы хотите сделать.

(Известно, что вы вообще удалили перехватчик преобразования и позволили использовать преобразователи по умолчанию или пользовательскиеКонвертеры обрабатывают ошибки конвертации, когда плохое конвертирование также не проходит «реальную» проверку поля.)

М-м-м-м ... вы можете играть в некоторые безумные игры с OGNL и заменой.

...