在 JSF 中验证类级别 bean 验证约束

2024-01-01

看来JSF 2.0并没有调用“类级别约束”。引用自一个所以答案 https://stackoverflow.com/a/9213763/1803692

JSF 2.0 不调用类级别验证约束。从JSF 验证: http://www.mastertheboss.com/web-interfaces/293-jsf-validation-tutorial.html?showall=1JSF 2 提供了与 JSR-303 约束的内置集成。当您在应用程序中使用 Bean 验证时,JSF 会自动使用 UIInput 值引用的 Bean 的约束。

答案进一步建议使用 SeamFaces 来验证类级别的约束。

不幸的是,这是一个不可选择的选择,因为它引入了一个相当大的依赖项来验证无论如何都应该验证的内容。

我的问题是:

如何让 JSF 验证类级别约束?

控制器中的手动验证非常繁琐,并且有大量重复代码,因此我想避免这种选择。

我尝试通过注释要验证的控制器字段来做到这一点@Valid,这没有帮助。

I guess应该可以让“流程验证”阶段为我做这件事,或者加入类似于Filter在“更新模型值”阶段之后,将通过验证集中运行模型值。


在即将推出的 JSF 2.3 之前,JSF 不支持使用 a.o. 进行类级别验证。@Valid。这是一个永恒的问题,因为有史以来第一个 JSF 规范问题 https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1解决这个问题。

您的度假村要么使用已经处理好它的第三方库,要么根据相关开源库的来源自制它(考虑到许可)。

除了接缝面<s:validateForm> http://docs.jboss.org/seam/3/faces/latest/reference/en-US/html/components.html#validateForm你已经找到了,还有OmniFaces<o:validateBean> http://showcase.omnifaces.org/validators/validateBean。与相比的主要区别<s:validateForm>是它不使用JSF Validator http://docs.oracle.com/javaee/7/api/javax/faces/validator/Validator.html, but a JSR303 ConstraintValidator http://docs.oracle.com/javaee/7/api/javax/validation/ConstraintValidator.html(并且您可以立即掌握整个实体,而无需声明和注释一堆字段,重复实体的属性。

JSF 2.3 支持将以<f:validateWholeBean> http://arjan-tijms.omnifaces.org/p/jsf-23.html#1主要基于 OmniFaces<o:validateBean>.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JSF 中验证类级别 bean 验证约束 的相关文章

随机推荐

  • Next.js 以线性渐变为背景的图像组件

    在开发我的登陆页面 使用 next js 时 我决定使用这行代码作为一个部分的背景 background image linear gradient to bottom rgb 123 8 255 0 9 rgb 123 8 255 0 8
  • 如何在 AngularJS 1.x 组件中验证表单

    我有一个表单 其字段位于组件内部 现在我想验证这些字段 问题是 我的消息没有显示 该模式也没有任何效果 我试图在这个的帮助下修复它post https stackoverflow com questions 36981037 passing
  • 如何使用 io-ts 验证数组长度?

    我正在研究一个io ts https github com gcanti io ts验证我想验证列表长度 它必须在最小值和最大值之间 我想知道是否有办法实现这种行为 因为它在运行时进行 API 端点验证时非常方便 到目前为止我所拥有的是 i
  • 免费 XML 格式化工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 查询返回错误值?

    感谢 zamboni 给我的帮助编写适用于整个数据库而不是表的查询 https stackoverflow com questions 46086616 write a query that applies to an entire db
  • 为什么 redisTemplate.opsForValue().get() 总是不为 null?

    I use Autowired private RedisTemplate redisTemplate and redisTemplate opsForValue get key IDE 给我一个警告 告诉我结果始终不为空 但我看到方法 V
  • 如何暂时禁用 Visual Studio 自动生成的事件?

    All 我已经完成了 GUI 设计阶段 现在我开始为应用程序中的所有控件添加有意义的名称 每次我单击控件更改其名称时 Visual Studio 都会让我发疯 自动生成事件 好吧 只有当我搞砸并双击时才会发生这种情况 但仍然很烦人 有没有办
  • 如何在 SQL 中使用多个 LEFT JOIN?

    sql查询中是否可以使用多个左连接 LEFT JOIN ab ON ab sht cd sht 我想添加一个这样的查询 会起作用吗 LEFT JOIN ab AND aa ON ab sht cd sht AND aa sht cc sht
  • 改变轴样式python

    我正在用 python 绘制一个简单的指数衰减 cos 曲线图 代码如下 代码实际运行没有问题 我只是想知道是否有办法改变python显示图形的方式 而不是像这样被轴包围this https i stack imgur com KBtt4
  • Angularjs 和 Angular 之间的区别[重复]

    这个问题在这里已经有答案了 Angularjs 和 Angular 例如 cli 和版本 之间有什么区别 我想使用 Angular 但我不知道选择其中之一有何区别 我用谷歌搜索但没有明确提及它们之间的差异 AngularJS是第一个版本An
  • 不支持 Last 和 LastOrDefault

    我正在尝试获取列表中的第一个和最后一个值 查询运算符First 受支持 但是Last and LastOrDefault 给出一个错误 我使用的是Last 操作员错误 var purchaseBills db PurchaseBills O
  • 从长度超过 N 个字符的文本中提取单词 - RegEx/Java/Android [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的第一个要求是使用 Java 中的正则表达式从某些文本中提取所有单词 以下代码对我来说非常完美 String words text sp
  • 从android webview中的base64 url​​下载文件

    我正在编写一个 webview 应用程序 在其中我可以从 html 标签 url 下载文件到设备 我可以下载 png jpg pdf 等文件 但是当 url 是 base64 字符串值时我不知道如何下载它 有人可以帮助我实现这一目标吗 例如
  • AS3 setChildIndex 到前面

    有没有办法将特定的 movieClip 发送到舞台上所有其他 movieClip 的前面 我知道 setChildIndex 但我无法找到动态计算顶部位置的方法 您可以使用setChildIndex with numChildren set
  • Google Places API:“place_id”或“id”对于世界上的任何城市来说都是唯一的吗?

    当对某个位置执行自动完成 API 调用时 我请求来自 google 的 JSON 响应 id 和 place id 字符串有什么区别 这两个ID是世界上任何一个城市所独有的吗 谷歌地点是否为世界上的每个城市分配一个ID 例如 Somers
  • Spark 中 IF then ELSE 的等价物

    我早些时候在这里看到过这个问题 并从中吸取了教训 但是 我不确定为什么当我认为它应该起作用时会出现错误 我想在现有 Spark 中创建一个新列DataFrame通过一些规则 这是我写的 iris spark 是具有分类变量 iris spa
  • 如何使用 SSE 将 _m128i 转换为无符号整数?

    我制作了一个用于图像分离的功能 define ARGB COLOR a r g b a lt lt 24 r lt lt 16 g lt lt 8 b inline UINT PosterizeColor const UINT color
  • 如何使用 GQL 使用管理控制台数据存储区查看器插入记录

    是否可以使用 管理 gt 数据存储查看器 在数据存储中插入或更新实体 例如 执行类似的事情 INSERT INTO table VALUES Foo Bar 不适用于 GQL 但可以使用以下命令插入和更新实体数据存储查看器 To INSER
  • Google Calendar API“请求的最短修改时间太早了。”仅仅一天之后

    我的代码使用获取日历事件service events list 具有以下参数 timeMax 2015 11 13T04 12 44 263000Z timeMin 2014 05 17T04 12 44 263000Z updatedMi
  • 在 JSF 中验证类级别 bean 验证约束

    看来JSF 2 0并没有调用 类级别约束 引用自一个所以答案 https stackoverflow com a 9213763 1803692 JSF 2 0 不调用类级别验证约束 从JSF 验证 http www masterthebo