Все, я пытаюсь написать то, что должно быть простой проверкой действия Struts2.У меня есть поле, которое должно содержать 0 или положительное целое число, поэтому я пытаюсь использовать встроенный валидатор регулярных выражений Struts2 для достижения этой цели.Я использую регулярное выражение '^ \ d * $', и я проверил это за пределами Struts2 и считаю, что оно должно соответствовать моим потребностям.(например, он соответствует «23», но не «abc» или «-5»).
Однако, когда я использую этот шаблон регулярных выражений в Struts2, он не выдает ошибку проверки для отрицательных чисел.
Вот мой фрагмент кода проверки Struts2:
<field name="editVO.capability.operationalQty">
<field-validator type="regex">
<param name="expression"><![CDATA[^\d*$]]></param>
<message key="errors.number"/>
</field-validator>
</field>
Вот некоторые результаты, которые я вижу, когда проверяю модулем эту проверку:
Input Validation Passes? Expected Result?
23 Yes Yes
abc No Yes
-5 Yes No
%5 No Yes
5- No Yes
a5 No Yes
Как вы можетесм. результаты выше, когда я запускаю свой модульный тест (или тестирование через приложение), я получаю сообщение об ошибке (как и ожидалось), когда я ввожу 'abc' или '5-', но '-5' делает НЕ вызывает сбой проверки.Я понятия не имею, почему он пропускает символ «-», если он первый.
Буду признателен за любые советы по регулярным выражениям в Struts2;обратите внимание, что я считаю, что ошибка здесь как-то связана именно со Struts2 и с тем, как он обрабатывает регулярные выражения, а не просто с проблемой, связанной только с регулярными выражениями.(fwiw - у меня возникает та же проблема, когда я пытаюсь использовать этот шаблон: '^ [0-9] * $').