JSF 验证错误,丢失值

2023-12-05

我有一个带有复合键的更新表单 所有复合键都显示在输出框中,因为我为每个复合键都有隐藏字段。验证错误后,这些输出框值为空。我该如何解决这个问题。我在同一页面上,所以它不需要有这些值。


这确实是一种非直觉行为h:inputHidden(我曾经提交过issue在 Mojarra 问题列表中反对它,但他们似乎没有对此做任何事情)。整个问题是组件的值不必要地是also考虑到整个验证周期,而没有用户控制输入的方法。当验证失败时它会丢失。至少有三种方法可以解决这种非直观行为。

第一种方法是使用binding on the h:inputHidden反而:

<h:inputHidden binding="#{bean.hidden}" />

这样该值就不会经历不必要的验证周期。然而,这需要改变您在支持 bean 代码中获取/设置值的方式。例如:

private HtmlInputHidden hidden = new HtmlInputHidden(); // +getter +setter.

public void setHiddenValue(Object hiddenValue) {
    hidden.setValue(hiddenValue);
}

public Object getHiddenValue() {
    return hidden.getValue();
}

第二种(恕我直言,这是首选方法)是使用Tomahawk's t:saveState反而。

<t:saveState value="#{bean.property}" />

主要优点是您不需要更改支持 bean 代码中的任何内容。它将在应用请求值阶段之前尽早恢复该值。如果尚未完成,您只需要添加额外的库,但 Tomahawk 提供的优势比仅添加更多t:saveState,例如基本 JSF 实现中缺少的组件/功能t:inputFileUpload, t:dataList, t:dataTable preserveDataModel="true", t:selectOneRadio layout="spread"等等,都是值得付出努力的。

第三种方法是将其存储在会话作用域 bean 中,但实际上您不想对请求作用域变量执行此操作。它只会给出“wtf?”最终用户在同一会话中打开多个选项卡/窗口时的体验。

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

JSF 验证错误,丢失值 的相关文章

随机推荐

  • 声明类型和实际类型

    据我了解 在创建这样的新对象时 GeomObject tri new Triangle 更通用并且允许更多的可重用性 但是当 tri 像这样创建时会发生什么 Triangle tri new Triangle 既然Triangle是Geom
  • NSLog 在某些 NSURL 下崩溃 - iOS 9.2

    这是我的代码 发生崩溃的地方 let URL NSURL string http files parsetfss com fa80bc63 88d4 412d a478 2451cffc92a9 tfss 1d2a321d b02e 474
  • 静态方法中的泛型

    我需要在实用程序类中添加一个方法 其中包含一些静态方法 用于解析 JSON 字符串中的内容并返回一组内容 问题是这些东西有各种子类型 所以我创建了这个方法 public static
  • iPad 和 iPhone 之间的 SpriteKit 坐标不同

    我有一个非常简单的 SpriteKit 场景 但其行为并不像我预期的那样 它是一个通用应用程序 我用来在场景中绘制单个红色方块的代码如下 let redSquare SKSpriteNode color UIColor redColor s
  • 如何在计算机启动时运行 PowerShell 脚本?

    我有一个监视图像文件夹的 PowerShell 脚本 我需要找到一种方法在计算机启动后自动运行这个脚本 我已经尝试过以下方法 但无法使其工作 Use msconfig并将 PowerShell 脚本添加到启动中 但我在该列表中找不到 Pow
  • 使用 Google App Engine 安心无忧

    我有一个使用 JBoss Resteasy 的工作 Rest Web 服务 但是当我尝试将其移植到使用 GAE 时 我在执行时收到此错误 java lang ClassNotFoundException org jboss resteasy
  • jQuery 查找最后一个输入并追加

    我正在尝试在 div 中的最后一个输入字段之后附加图像 关于为什么这不起作用的任何想法 img src img loading gif appendTo form find input last img src img loading gi
  • 提取 R 中最后一个正则表达式匹配

    我在用着mutate with str extract 将数据框中的字符串列压缩为单个关键字列 我的问题是其中一个字符串包含两个关键字 而第二个对我来说更重要 不过 正则表达式总是首先找到我告诉它寻找的替代方案 有办法改变这个吗 MWE 无
  • 在 ASP.Net MVC 中动态地将角色映射到控制器

    我目前正在 MVC 应用程序的过滤器中对授权角色进行硬编码 如下所示 Authorize Roles Administrator Manager 我希望最终有一种方法将角色映射到每个控制器 以便站点管理员可以分配哪些角色可以执行每组操作 s
  • 调用init方法失败;嵌套异常是 java.lang.IncompleteClassChangeError: Implementing class

    错误信息 SEVERE Exception sending context initialized event to listener instance of class org springframework web context Co
  • 将视图转换为位图而不在 Android 中显示?

    我将尝试解释我到底需要做什么 我有 3 个独立的屏幕 分别为 A B C 还有另一个屏幕称为 HomeScreen 其中所有 3 个屏幕位图都应显示在图库视图中 用户可以选择他想要进入哪个视图 我已经能够通过仅将所有代码放置在 HomeSc
  • 是否有适用于 WPF 的虚拟化 WrapPanel 可用?商业或免费的

    有可用的虚拟化 WrapPanel 吗 商业或免费的 我看过一些博客 包括 dan 的 但它似乎在我的应用程序中效果不佳 特别是当我有不同大小的子项目时 此外 即使尺寸相同 那些免费的也不能很好地工作 市场上有商业的吗 我找不到任何 请给出
  • 不接受 gnuplot-datafile 中的单列

    我想在 gnuplot Ubuntu 上为 4 6 4 中绘制一些数据 但我遇到了一个奇怪的问题 我想要绘制的数据是这样的 0 200002 1 802499 0 019630 0 026596 1 0 200004 1 782499 0
  • 递归地将 XML 添加到 TreeView 中

    我正在尝试使用 C 将节点的 XML 文件导入到 TreeView 中的相同节点结构中 我发现了很多使用单节点结构的示例 但在遍历 XML 文件并用它填充 TreeView 时遇到了很多问题 这是 XML 文件的示例
  • for 循环消除

    我想使用指数技巧消除for我的 C 11 程序中的循环 类似于强制 funroll loops 这是一个例子 template
  • 如何确定从 Java 文本文件中读取的最大值和最小值

    我正在为班级做作业 正在寻找一些有用的指导 而不是完整的解决方案 基本上 我必须编写一个 Java 程序 读取文本文件并逐行列出信息 列出行号 最后打印出最大值和最小值以及与每个值相关的年份 该文本文件包含年份和该年的温度 因此 它列出了类
  • 在sql server中生成序列

    我正在开发一个函数 该函数将采用一个小数和一个大数作为参数 并返回一个包含其间 并包括 所有内容的表 我知道我可以使用游标并增加一个变量 每次迭代将其添加到基于范围的表中 但如果可能的话 我宁愿避免使用游标 还有其他人有关于执行此操作的方法
  • 如何在js文件中写入php代码

    我的程序是我将页面划分为第一个 div 中的 div 我添加了此代码
  • 宏完成后删除文档

    我有一个 Word 2007 docm 文件 我将其作为电子邮件附件发送给用户 以便他们更新文件 宏从服务器下载文件并正确安装它们 而不是将文件作为电子邮件附件发送并相信用户能够正确安装 我会改用 VBScript 文件 但不允许我通过电子
  • JSF 验证错误,丢失值

    我有一个带有复合键的更新表单 所有复合键都显示在输出框中 因为我为每个复合键都有隐藏字段 验证错误后 这些输出框值为空 我该如何解决这个问题 我在同一页面上 所以它不需要有这些值 这确实是一种非直觉行为h inputHidden 我曾经提交