2010-06-14 2 views
2

У меня есть приложение Struts 2, проверка работает просто отлично, он проверяет необходимые поля и выдает соответствующее сообщение об ошибке. Проблема возникает в очень специфическом месте, то есть символьном номере 5838!Странное поведение в проверке Struts 2

В моем файле validation.xml я определил многочисленные поля, один из них

<field name="idState"> 
     <field-validator type="requiredstring"> 
     <param name="expression"><![CDATA[ 
      idNumber == null || idNumber.trim().length() == 0 
     || (idState != null && idState.trim().length() > 0) 
      ]]></param> 
     <message>Please enter your State.</message> 
     </field-validator> 
    </field> 

(Пожалуйста, простите мой код форматирования!) Технически я должен получить сообщение об ошибке, как

"Please enter your State." 

к моему развлечению я только получаю

"Please enter yo". 

И это происходит на месте 5838 (т.е. сообщение об ошибке усекает).

Теперь, если я добавить пробел в теге, как я получаю

"Please enter y". 

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

Любая подсказка о том, что происходит?

+1

Эта проблема связана с сообщением об ошибке, а не с валидатором? Что такое символ 5838? – Tarski

ответ

0

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

Что-то подобное произошло со мной, и это был символ UTF-8 в файле, отличном от UTF-8. Мой совет - проверить весь файл на предмет возможных проблем с синтаксическим анализом, конечно же, после местоположения 5838.

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