我有一些输入组件,只有在所有其他情况下执行特定操作时才应该验证它们应该接受每个输入。
这样我就不能使用普通的验证器,但是有一个 commandButton 来评估它的 action Method 中的数据,并在缺少某些东西时创建一些与特定 clientIds 相关的 FacesMessages。
现在我通常使用OmniFaces o:highlight组件来指向需要进一步操作的字段,但在这种情况下,输入组件是有效的,因此突出显示组件不会考虑它们。
现在我想知道这种行为是否可能取决于带有消息的 ID 列表。
像这样的东西:
for (Iterator<String> it = FacesContext.getCurrentInstance()
.getClientIdsWithMessages(); it.hasNext();) {
String clientId = it.next();
List<FacesMessage> messageList = FacesContext
.getCurrentInstance().getMessageList(clientId);
if (messageList != null) {
for (FacesMessage msg : messageList) {
... // build json with clientIds (maybe check for UIInput
}
}
}
如果需要这种方式,可以为信息、警告和错误消息引入新的样式类。也许它甚至更快,因为不必访问整个组件树,但这只是一个猜测。
那你怎么看?这是对当前行为的一个相当艰难的改变,所以我不确定这个猜测是否会使其成为全能面或必须单独实施。