好肉汁!?!为什么这会以如此奇怪的顺序显示?页面上有4个问题需要验证。这4个问题是按1,2,3,4的顺序排列的字段。
但页面底部的验证以明显随机的顺序报告它们!
这是xpage上显示的源代码
<xp:inputTextarea style="width:75%" value="#{Report.Agenda}" id="Agenda">
<xp:this.validators>
<xp:validateRequired
message="Question 1 can't be blank">
</xp:validateRequired><!-- (1) -->
</xp:this.validators>
</xp:inputTextarea>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:inputTextarea style="width:75%" value="#{Report.Themes}" id="Themes" required="true">
<xp:this.validators>
<xp:validateRequired message="Question 2 can't be blank."></xp:validateRequired>
</xp:this.validators></xp:inputTextarea>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:inputTextarea style="width:75%" value="#{Report.Why}" id="Why" required="true">
<xp:this.validators>
<xp:validateRequired message="Question 3 can't be blank."></xp:validateRequired>
</xp:this.validators></xp:inputTextarea>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:inputTextarea style="width:75%" value="#{Report.Goals}" id="Goals" required="true">
<xp:this.validators>
<xp:validateRequired message="Question 4 can't be blank."></xp:validateRequired>
</xp:this.validators></xp:inputTextarea>
答案 0 :(得分:1)
错误总是以随机顺序排列,还是总是以相同的顺序排列,而不是您期望的顺序?如果是后者,则可能与控件添加到XPage的顺序有关,或者它们在组件树中找到的顺序,从兄弟姐妹导航到下一个兄弟等等。
在本地\ xsp下的Package Explorer中将有一个相应的Java类。 create ...方法的顺序,例如createButton1可能会提供一些线索。
答案 1 :(得分:1)
这里有一些相关信息:How to set the order of validation messages?
长话短说,您可能想在此博客上查看解决方案。 http://dontpanic82.blogspot.com/2011/07/custom-control-for-enhanced-validation.html
答案 2 :(得分:1)
验证错误内部存储在 java.util.HashMap 中。 这就是文档中关于这个类的内容:
此课程不保证地图的顺序;特别是,它不保证订单会随着时间的推移保持不变。
呈现消息控件时, FacesMessages 以随机顺序显示。没有机会改变这种行为。相反,你必须创建自己的解决方案。