【发布时间】:2013-12-07 19:06:28
【问题描述】:
当组件的验证失败时,我正在尝试做以下事情:
- 将未通过验证的输入的边框更改为绿色
- 将验证失败的输入边框更改为红色
- 在页面顶部,呈现具有国际化标签/消息对的列表
- 仅显示错误消息
到目前为止我所拥有的:
我使用 Bean 验证:
@Size(最小值 = 5,最大值 = 20)
我使用 JS/JQuery 管理着色,如下所示:
- 我渲染了一个带有验证状态的隐藏字段:
styleClass="hidden #{facesContext.validationFailed?'failed-validation':'success-validation'}"
- 在要验证的组件上,我设置了单独的验证状态:
#{component.valid?'input-valid-tobe':'input-error'}"
- 在我的 Ajax 操作中,我注册了一个
onevent="xxx"函数,该函数将 CSS 替换为正确有效的 CSS。即如果验证失败,我只想突出显示已验证的内容:
function xxx(data){ if(data.status == "success"){ if ($('.failed-validation')[0]){ $('.input-valid-tobe').addClass('input-valid'); } } }
现在问题来了,渲染消息: 我想呈现一个显示组件标签和消息的列表。
消息:
我想我可以像这里描述的那样使用 bean 验证 I18N 来获取消息:
How does it work with bean validation messages and i18n in JSF2? http://jcp.org/aboutJava/communityprocess/edr/jsr303/index.html
..但是,我希望 JSF 2.2 中可能有一些新东西!有吗?
标签:
<h:messages/> 不应该为输入字段呈现标签吗? (由于某种原因它没有)
过滤:
有没有办法通过severity 过滤消息?
(除了创建一个使用 CSS 隐藏我不想显示的消息的自定义 bean)
【问题讨论】:
标签: jsf