JSF 命令按钮立即=“true”

2023-11-25

我遇到的情况是 selectOneMenu 的值绑定到支持 bean。

我需要一个不更新模型值的按钮(这就是为什么它具有立即=“true”属性)。

该按钮的操作方法更改了 selectOneMenu 绑定到的值,但是当重新显示页面时,将显示原始值(提交的值),而不是操作方法中设置的值。

有什么想法为什么会发生这种情况吗?

如果我没有很好地解释问题,请告诉我。


EDIT: As requested here is the source code in question:

页面代码:

<h:selectOneMenu id="selectedPerson" 
                 binding="#{bindings.selectPersonComponent}" 
                 value="#{bean.selectedPerson}">
   <s:selectItems var="op" value="#{bean.allPersons}" 
                  label="#{op.osoba.ime} #{op.osoba.prezime}" 
                  noSelectionLabel="#{messages.selectAPerson}">
   </s:selectItems>
   <f:converter converterId="unmanagedEntityConverter" />
</h:selectOneMenu>
...
<a4j:commandButton action="#{bean.createNew}" value="#{messages.createNew}"
     immediate="true" reRender="panelImovine">
</a4j:commandButton>

java代码:

private Person selectedPerson;

public String createNew() {
    log.debug("New created...");
    selectedPerson = null;
    bindings.getSelectPersonComponent().setSubmittedValue(null); //SOLUTION
    return "";
}

解决方案在划线处SOLUTION :)


由于在发布此问题后不久经常发生这种情况,我找到了答案:

问题的原因在这里详细解释:清除输入组件

问题是(如所解释的)模型值尚未更新,因此提交的输入仍在 component.subscribedValue 字段中,并且如果该字段不为空,则会显示该字段。模型更新后通常会清空。

第一个解决方案在我的情况下不起作用,因为视图中还有其他重要状态不能丢失。但第二个解决方案效果很好:

component.setSubmittedValue(null);

这就是所需要的一切:这是一些额外的工作,因为组件必须绑定到某个 bean,但也没有那么糟糕。

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

JSF 命令按钮立即=“true” 的相关文章

随机推荐

  • C#程序导致蓝屏?

    这只是蓝屏显示的重要内容 我使用的是 Windows 7 x64 已检测到问题 Windows 已关闭以防止损坏 到您的计算机 PROCESS HAS LOCKED PAGES 停止 0x00000076 0x000000000000000
  • ng-init 是否像 ng-model 一样监视实例化属性的变化?

    ng init 是否像 ng model 一样监视实例化属性的变化 显然不是 所以我设置了一个手表 如下所示 app js var app angular module plunker app controller MainCtrl fun
  • Plinq、Cores 和 WithDegreeOfParallelism?

    据我了解 Plinq 决定打开多少个线程 每个线程位于不同核心的线程上 按核心数 Core 1 Core 2 Core 3 Core 4 因此 如果我有一个 Plinq 任务来查找所有前 1000 个素数 Plink将打开一个新的Threa
  • 使用 Android 的 AudioTrack 组合声音样本字节会产生噪音

    我正在构建一个相当简单的 Android 应用程序 sdk 修订版 14 ICS 它允许用户一次选择两个音频剪辑 均为 RIFF WAV 格式 小端 签名 PCM 16 位编码 并将它们组合在创造新声音的各种方式 我用于此组合的最基本方法如
  • 在 OpenCV C++ 中将图像的所有白色像素更改为透明

    我在 OpenCV 中有这张图片imgColorPanel imread newGUI png CV LOAD IMAGE COLOR 当我用灰度加载它时imgColorPanel imread newGUI png CV LOAD IMA
  • 智能分页算法[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在寻找智能分页的示例算法 所谓聪明 我的意思是 我只想显示当前页面的 2 个相邻页面 因此我不会以长得可笑的页面列表结束 而是将其截断 这是一个简单的例子 可以让它更清楚 这就是
  • 如何在 Erlang 中读取整数?

    我正在尝试读取用户输入的整数 如 C 中的 cin gt gt nInput 我发现 io fread bif 来自http www erlang org doc man io html 所以我写这样的代码 ok X io fread 输入
  • 具有多个表的单个文本文件

    我正在尝试从具有多个表的单个文本文件导入数据 这些表的长度各不相同 但每个表之间有共同的间隔 每个表之间的分隔是一个数字后跟一个字符 例如 19 EOP 1 10 92 9144 202 1271 0 B 10 Dec 2014 11 46
  • 如何从 Win32 中的 func ptr 获取模块句柄?

    我正在研究虚拟机的本机调用绑定 其中一项功能是能够在运行时按名称查找标准 libc 函数 在 Windows 上 这变得有点麻烦 因为我需要获取进程中当前加载的 msvcrt 模块的句柄 通常这是 msvcrt dll 但也可能是其他变体
  • 为什么不可变对象受到 JVM GC 的喜爱?

    我知道JVM GC喜欢短寿命对象的原因 因为它可以在minor GC中收集 但为什么 JVM GC 喜欢不可变对象呢 编辑 Charlie Hunt 说 GC 喜欢他的不可变对象推介会 Thanks 如果 GC 可以知道某个对象不包含对任何
  • jQuery - 如何知道窗口是否正在调整宽度/高度或两者的大小?

    我在使用 jQuery 函数调整窗口大小时遇到 一些问题 resize 我想知道哪个尺寸变大 变小 宽度或高度 我需要这个 因为如果我只设置两个条件 如果宽度比 div 大 50px 如果高度比 div 大 50px pseudocode
  • 从 NSArray 获取单个属性的 NSArray

    我面临着一个非常常见的情况 我有一个 NSArray 它有一个自定义类型的对象 比如 Person Person 类具有以下属性 firstName lastName 和age 如何从具有 Person 对象的 NSArray 中获取仅包含
  • 具有可变 Excel 连接管理器的 SSIS

    我正在尝试使用 SSIS 中的 WMI 事件观察器任务自动执行包 我想要的功能是当 Excel 文件放入某个文件夹时自动执行包 但是 这些 excel 文件将是用于填充数据库的连接管理器 目前 SSIS 不允许我这样做 因为我的 Excel
  • Primefaces selectCheckboxMenu 过滤器在 selectOneMenu 位于数据表内部时不起作用

    我有一个 Primefaces 5 0 数据表 我使用两列过滤器 selectOneMenu Filter1 和 selectCheckboxMenu Filter2 两个过滤器的数据都填充得很好 selectOneMenu Filter1
  • 根据属性值有条件地包含组件

    我有一个 ListView 它显示来自 API 的一些数据 在我的列表项中 我需要有两个不同的组件树 具体取决于该行的数据 更具体地说 如果该行有关联的图像 我需要显示带有标签的图像 并以某种方式排列 如果它没有图像 那么我只想显示一个标签
  • UI图像元数据

    在我的应用程序中 我从资源库中检索 UIImage 该图像具有元数据 然后 应用程序会调整图像大小并旋转图像 从而创建新图像 新图像没有预期的原始元数据 但是如何在上传之前将元数据添加回图像 提前致谢 我自己修复了它 这是我使用的方法 以防
  • Android RecyclerView 滚动性能

    我创建了 RecyclerView 示例创建列表和卡片指导 我的适配器有一个仅用于膨胀布局的模式实现 问题是滚动性能较差 这是在只有 8 个项目的 RecycleView 中 在一些测试中我验证了在Android L中不会出现这个问题 但在
  • 如何在 Python 中将长整型写为二进制?

    在 Python 中 长整数具有无限的精度 我想将 16 字节 128 位 整数写入文件 struct标准库仅支持最多 8 字节整数 array具有相同的限制 有没有办法在不屏蔽和移动每个整数的情况下做到这一点 这里需要澄清一下 我正在写入
  • BASH:如何对管道中的数字执行算术运算

    我在管道中得到一串数字 并且想在将它们传递到下一部分之前执行一些操作 但我有点不知道如何在不破坏管道的情况下进行操作 例如 gt echo 1 2 3 4 5 some command cat 1 4 9 16 25 gt 您对如何使这样的
  • JSF 命令按钮立即=“true”

    我遇到的情况是 selectOneMenu 的值绑定到支持 bean 我需要一个不更新模型值的按钮 这就是为什么它具有立即 true 属性 该按钮的操作方法更改了 selectOneMenu 绑定到的值 但是当重新显示页面时 将显示原始值