2010-06-14 71 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 2011-01-20 11:10:53

回答

0

對我來說這似乎不是一個與這個特定驗證器相關的問題。聽起來更像是解析整個validation.xml文件的問題。也許錯誤消息僅僅因爲它在讀緩衝區中間而被破壞。

發生了類似的事情,這是一個非UTF-8文件中的UTF-8字符。 我的建議是檢查整個文件的可能的解析問題,當然在位置5838之後。