具有渲染属性的jsf组件验证失败

Posted

技术标签:

【中文标题】具有渲染属性的jsf组件验证失败【英文标题】:jsf component with render attribute failing validation 【发布时间】:2011-04-17 05:04:39 【问题描述】:

我有几个具有渲染属性的面板网格,在下拉列表的值更改事件中,我使其中一个面板网格可见,这很好用。但是在显示面板后,附加到面板网格内组件的所有转换和验证都会失败。

即使组件是单一的并且在网格之外,它也无法通过验证。

我在渲染属性上遗漏了什么吗? JSF 生命周期中是否发生了一些事情。

任何帮助都会非常有帮助...

提前致谢

我正在使用 jsf 2.0 mojarra 实现。

【问题讨论】:

我不明白您所说的“所有验证都失败”是什么意思。你当时遇到了什么错误?还是您实际上的意思是“未执行所有验证”? IE。验证被完全跳过。 没有错误“跳过所有验证”操作方法直接调用 //代码结构如下 类型: //包含的代码有 .....required="true" 组件...... .... devgrok.blogspot.com/2009/06/… 这对我的问题有什么影响?????? 这确实是相关的,但这会处理还没有 view 范围的 JSF 1.x。 【参考方案1】:

您需要确保负责rendered 属性的条件在后续请求中评估相同。 JSF 将在应用请求值和验证阶段重新检查条件。到目前为止,您的 bean 似乎是 request 范围的,并且该条件在后续请求中丢失了。最简单的解决方法是通过将 bean 注释为 @ViewScoped 将 bean 放置在 view 范围内。这样,只要您与同一个视图交互,bean 就会一直存在。

另见:

Benefits and pitfalls of @ViewScoped

【讨论】:

感谢 balusc,确实在请求范围内。只是添加到它你的博客是许多 jsf 开发人员的救星;) 干杯,不客气。如果它有助于解决问题,请不要忘记将答案标记为已接受。另请参阅***.com/faq :) 使用 jsf 2 + spring 3,此链接有助于查看范围 cagataycivici.wordpress.com/2010/02/17/…

以上是关于具有渲染属性的jsf组件验证失败的主要内容,如果未能解决你的问题,请参考以下文章

验证通常失败时 JSF 中的条件样式

当jsf验证失败时,跳过ajax

错误:架构验证失败并出现以下错误:数据路径“”不应具有其他属性(项目)

Angular Schema 验证失败并出现以下错误:数据路径“”不应具有其他属性(rebaseRootRelativeCssUrls

XML 和 XSD 验证失败:元素同时具有“类型”属性和“匿名类型”子项

JSF 复合组件支持 bean EL 表达式作为必需属性的默认值失败,方法未知