【发布时间】:2013-06-20 08:10:10
【问题描述】:
我有一些输入组件,只有在所有其他情况下执行特定操作时才应该验证它们应该接受每个输入。
这样我不能使用普通的验证器,但有一个命令按钮,它评估它的操作方法中的数据,并在缺少某些东西时创建一些与特定 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
}
}
}
如果需要这种方式,可以为信息、警告和错误消息引入新的样式类。也许它甚至更快一些,因为不必访问整个组件树,但这只是一个猜测。
那么你的意见是什么?这是对当前行为的一个相当艰难的改变,所以我不确定这个猜测是否会使其成为全方位的,还是必须单独实施。
【问题讨论】: