如何使用 f:ajax event=change 将当前迭代的项目发送到 h:selectBooleanCheckbox

2023-12-01

我有以下表格:

<h:form>
    <h:dataTable value="#{bean.items}" var="item">
        <h:column>
            <h:selectBooleanCheckbox  value="#{item.enabled}" valueChangeListener="#{bean.onchangeEnabled}">
                <f:ajax event="change" />
            </h:selectBooleanCheckbox>
        </h:column>
        <h:column>#{item.name}</h:column>
    </h:dataTable>
</h:form>

我想得到#{item}或者至少#{item.name}在值更改侦听器方法中:

public void onchangeEnabled(ValueChangeEvent e) {
    // I would like to get #{item.name} here too.
}

我怎样才能实现这个目标?


首先,valueChangeListener是不适合这项工作的工具。使用<f:ajax listener>。第二,event="change"对于复选框/单选按钮来说是错误的选择,因为它们的物理值实际上永远不会改变。你应该使用event="click",但这已经是默认值,因此您可以忽略它。

总而言之,正确的初始代码应该如下所示:

<h:selectBooleanCheckbox value="#{item.enabled}">
    <f:ajax listener="#{bean.onchangeEnabled}" />
</h:selectBooleanCheckbox>

with

public void onchangeEnabled(AjaxBehaviorEvent event) { // Note: event argument is optional.
    // ...
}

一旦像这样修复了它,那么您就可以轻松地利用 EL 2.2 功能来传递方法参数:

<h:selectBooleanCheckbox value="#{item.enabled}">
    <f:ajax listener="#{bean.onchangeEnabled(item)}" />
</h:selectBooleanCheckbox>

with

public void onchangeEnabled(Item item) {
    // ...
}

也可以看看:

  • 何时使用 valueChangeListener 或 f:ajax 监听器?
  • 我可以将哪些值传递给 f:ajax 标记的事件属性?
  • 如何将选定的行传递到 dataTable 内的 commandLink?
  • 了解 PrimeFaces 进程/更新和 JSF f:ajax 执行/渲染属性
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 f:ajax event=change 将当前迭代的项目发送到 h:selectBooleanCheckbox 的相关文章

随机推荐

  • Visual Studio 2015 损坏的 Razor 智能感知

    安装并修复我的后VS2015例如 我仍然无法让智能感知 服务器端 在我的 MVC 视图中工作 当我在会话中第一次打开时 我会收到消息提示提醒 cshtml文件并寻址到 Activitylog 文件 在 ActivityLog xml 简短版
  • 比较 csv 文件中的值

    我正在比较两个 csv 文件中的不同值 如果没有匹配项 我想在管理系统中添加 或更新 我的设备 output1 csv 名称 ip 主系统 Test1 10 56 7 13 Test2 10 56 4 14 Test3 10 56 5 15
  • 更新 AVPlayerLooper 上的 timeRange 属性的推荐方法

    我正在构建AVPlayerLooper示例代码Apple 提供了专门利用他们为您提供的示例 AVPlayerLooper 设置PlayerLooper swift LooperViewController swift 以及Looper sw
  • “循环取消切换”优化不起作用

    听说Java支持 Loop Unswitching 所以简单在JMH中测试了一下 我以为 JIT 之后它们会完全一样 为什么是这样 private final int TIMES 1 000 000 private boolean bool
  • 从 openfire-4.1.1 获取存档消息(XEP-0313 MAM - 聊天历史记录)时出现错误

    Openfire 版本 4 1 1 支持 XEP 0313 MAM Smack 版本 4 2 0 rc2 SNAPSHOT 具有 XEP 0313 MAM 支持 监控服务版本 1 5 4 在 Openfire 中安装监控服务插件后 我还启用
  • 如何在C#中使用MeasureString设置表格列宽?

    我有一个非常简单的 我希望是基本的 问题 我正在为我公司的网站修改一些 C 代码 该代码在固定列中为我绘制了一个表格 其数据是从数据库中提取的 表格每列的高度是固定的 当前 我需要更改它 因此如果字符串具有一定的长度 因此换行 则第二行文本
  • 如何处理树枝数组?

    我正在配置一个树枝模板 我如何处理这个数组 a 3 i 0 s 6 Balkon i 1 s 9 M bleret i 2 s 4 Pool 用树枝代码 这是一个序列化数组 称呼unserialize on it
  • 如何向组合框和列表中的选项添加标签?

    我阅读了以下文档 http docs oracle com javafx 2 ui controls combo box htm并且我没有找到任何与我的需求类似的东西 我一直在寻找一种将我的选项分组到组合框中的方法 假设我的组合框是持续时间
  • 将 HashMap 的键和值组合成 Set

    我有一个HashMap
  • 如何使用 Alamofire 快速发布请求 json 正文?

    我需要在 json 正文中为我的应用程序后端发出 POST 请求 但响应返回失败 我假设我的 json 格式或编码是错误的 但我无法弄清楚问题是什么 我尝试了很多不同的解决方案 但未能找到有效的解决方案 谁能看到我的代码的哪一部分导致了失败
  • 如何转义 echo " 以存储在文件中?

    我知道 echo blah blah gt file txt作品 然后echo gt file txt也有效 但是 如果我只想回显一个怎么办 双引号 在文件中 echo gt file txt不起作用 是否可以用一行命令来完成它 Windo
  • 在 Appmaker 中下载文件

    我在 Appmaker 中创建了一个应用程序 我想从 Appmaker 中的云端硬盘表下载某些报告 为此 我目前正在使用 Drive API 创建电子表格 我还想添加下载功能 允许用户在本地计算机中下载电子表格 我已经对 Appscript
  • 将方法名称作为回调传递 VS.用匿名函数包装它

    我有一个按钮 test var obj name John test function console log name this name test on click obj test 这将记录一个空字符串 记录 typeof this
  • QT对话框关闭并删除

    我有一个 MainWindow 和 Type 类 主窗口中的按钮使用以下代码向插槽发送信号 dialog new QDialog this Ui type typeui typeui setupUi dialog dialog gt sho
  • 为什么 Scrapy 返回一个 Iframe?

    我想爬行这个网站通过Python Scrapy 我试试这个 class Parik scrapy Spider name ooshop allowed domains http www ooshop com courses en ligne
  • Android:即时应用程序仅显示白屏

    我试图制作一个基本的 Hello world 即时应用程序 为此我正在关注https developer android com topic instant apps getting started first instant app ht
  • 适用于 Android 的蓝牙和 WIFI 打印

    我们需要一台便携式打印机 手持式 这一点很重要 可以通过蓝牙或wifi连接到Android手机 目前我所知道的 这次没有适用于Android的标准打印SDK 有一个非官方的SDK叫iPrint SDK 你们有人尝试过通过wifi或蓝牙吗 有
  • 带有 Chrome Native Messaging 的 C# 本机主机

    今天我花了几个小时研究如何让 Chrome 原生消息传递与 C 原生主机配合使用 从概念上讲 它非常简单 但是在这些其他问题的帮助 部分 下 我解决了一些障碍 Chrome 原生消息传递 从 Chrome 扩展程序到用 C 编写的本机主机的
  • tomcat 中的自定义会话管理器

    在哪里可以找到有关为 Tomcat 创建自定义会话管理器的文档 例如 如何在 tomcats server xml 中配置会话管理器 必须实现什么接口才能使用我的会话管理器 Q 如何在 tomcats server xml 中配置会话管理器
  • 如何使用 f:ajax event=change 将当前迭代的项目发送到 h:selectBooleanCheckbox

    我有以下表格