Проверка двойного поля в стойках 2 - PullRequest
3 голосов
/ 12 апреля 2011

У меня есть поле "длина" в одном из моих распорок 2 формы. Тип данных "длина" является "двойной". Я применил «двойную» проверку в XML-файле. Но когда я набираю буквы в текстовом поле «длина», сообщение об ошибке отображается как

Invalid field value for field "length"

Я не хочу, чтобы это сообщение отображалось так. Это сообщение создано самими стойками 2 и не введено мной. Я думаю, это сообщение приходит, когда преобразование данных не удается. Я также применил валидатор «преобразования», но вышеупомянутое сообщение об ошибке все еще появляется. Пожалуйста, предложите решение.

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

Вам повезло.Этот текст настраивается.

Текст определен в xwork-messages.properties в xwork jar.Вы можете переопределить его, добавив следующее в свой глобальный пакет ресурсов i18n:

xwork.default.invalid.fieldvalue=Invalid field value for field "{0}".

Как вы уже догадались, это сообщение об ошибке появляется при всех ошибках преобразования типов.Класс XWorkConverter имеет несколько полезных javadoc по этому поводу:

Любая ошибка, возникающая во время преобразования типа, может или не может быть желана, чтобы о ней сообщали.Например, сообщение о том, что ввод «abc» не может быть преобразован в число, может быть важным.С другой стороны, сообщение о том, что пустая строка «» не может быть преобразована в число, может быть неважным, особенно в веб-среде, где сложно отличить пользователя, не вводящего значение, от ввода пустого значения.

По умолчанию все ошибки преобразования сообщаются с использованием общего ключа i18n xwork.default.invalid.fieldvalue , который можно переопределить (текст по умолчанию: Недопустимое значение поля для поля«xxx» , где xxx - имя поля) в глобальном пакете ресурсов i18n.

Однако иногда вам может потребоваться переопределить это сообщение для каждого поля.Вы можете сделать это, добавив ключ i18n, связанный только с вашим действием (Action.properties), используя шаблон invalid.fieldvalue.xxx , где xxx - имя поля.

Это важнознать, что ни об одной из этих ошибок на самом деле не сообщается напрямую.Скорее они добавляются в карту с именем translationErrors в ActionContext.Есть несколько способов получить доступ к этой карте и сообщить об ошибках соответственно.

0 голосов
/ 24 мая 2014

попробуйте это,

<field name="percentage">
    <field-validator type="double">
        <param name="minExclusiveExpression">${minExclusiveValue}</param>
        <param name="maxExclusiveExpression">${maxExclusiveValue}</param>
        <message>Percentage needs to be between ${minExclusive} and ${maxExclusive} (exclusive)</message>
    </field-validator>
</field>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...