我有一个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位置。此后及之前的所有消息都会正确显示。
有关正在发生的事情的任何线索?
答案 0 :(得分:0)
对我来说似乎不是与此特定验证器相关的问题。听起来更像解析整个validation.xml文件的问题。也许错误信息只是因为它位于读取缓冲区的中间而被打破。
类似的事情发生在我身上,它是非UTF-8文件中的UTF-8字符。 我的建议是在位置5838之后检查整个文件是否存在可能的解析问题。