Struts 2验证中的奇怪行为

时间:2010-06-14 16:27:30

标签: java validation struts2

我有一个Struts 2应用程序,验证工作正常,它验证必要的字段并抛出足够的错误消息。问题出在一个非常具体的位置,即字符编号5838!

在我的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 个答案:

答案 0 :(得分:0)

对我来说似乎不是与此特定验证器相关的问题。听起来更像解析整个validation.xml文件的问题。也许错误信息只是因为它位于读取缓冲区的中间而被打破。

类似的事情发生在我身上,它是非UTF-8文件中的UTF-8字符。 我的建议是在位置5838之后检查整个文件是否存在可能的解析问题。