ui:repeat 内的 selectManyCheckbox 集合知道它属于转发器的哪个元素

2024-01-29

我正在使用 JSF 2 开发一个 Web 应用程序。 我的网络应用程序除其他外还包含一系列问题,一次提出一个问题(因此一次可以看到一个问题),并且有多个答案(我使用 h:selectManyCheckbox)。

我将问题和可能的答案存储在 ArrayList(“gridQuestionListClone”)中,并将用户答案(在最后检查之前)存储在 HashMap(“allQuestionUserAnswerMap”)中。 (如果答案需要,我可以更改存储方式)。

当用户回答完所有问题后,我想让用户能够重新检查页面中的所有问题和答案(我希望预加载答案)。因此,所有问题及其相应的复选框(每个问题 3 个)以及用户在一页中选中的复选框。

因此,我使用 ui:repeat 来浏览所有问题和可能的答案,我需要一种机制来检查正确的复选框(用户选中的),并让用户可以在按下提交按钮时更改他/她的答案(例如)了解哪些复选框对应哪些问题。 一个让事情变得更清楚的草图:))(也许)。因此,当用户回答完我想向他展示的所有单个问题时:

Question 1:
a) answer1 - CHECKED
b) answer2 - UNCHECKED
c) answer3 - CHECKED
------------------------
Question 2:
a) answer1 - UNCHECKED
b) answer2 - UNCHECKED
c) answer3 - CHECKED
------------------------
Question 3:
a) answer1 - CHECKED
b) answer2 - CHECKED
c) answer3 - UNCHECKED
------------------------
.
.
.
Question n:
a) answer1 - CHECKED
b) answer2 - UNCHECKED
c) answer3 - CHECKED
------------------------ 
SUBMIT button

用户检查他/她的答案并根据需要进行修改,然后按提交按钮。 然后我想要一个某种类型的集合(或者多个我并不关心的集合,之后我可以合并它们),其中包含问题的数量和可能的答案,例如在“allQuestionUserAnswerMap”中的乞求或类似的东西。

我的简单代码(不正确):

<ui:repeat var="p" value="#{gridPopUpBean.gridQuestionListClone}">
                    <hr />
                    <h:panelGrid columns="2">
      ...
                        <h:panelGroup style="text-align: left">
                            <h:selectManyCheckbox
                                value="#{gridPopUpBean.oneQuestionUserAnswerList}"
                                layout="pageDirection">
                                <f:selectItem itemValue="a"
                                    itemLabel="#{p.a}" />
                                <f:selectItem itemValue="b"
                                    itemLabel="#{p.b}" />
                                <f:selectItem itemValue="c"
                                    itemLabel="#{p.c}" />
                            </h:selectManyCheckbox>
        ...
                        </h:panelGroup>
                    </h:panelGrid>
                </ui:repeat>

有任何想法吗?


最简单的方法是将复选框组的值绑定到当前迭代的对象,而不是将所有复选框组绑定到同一个父 bean 属性。

在代码中,只需替换

value="#{gridPopUpBean.oneQuestionUserAnswerList}"

by

value="#{p.oneQuestionUserAnswerList}"

并对模型进行相应的更改。

或者,您也可以提供Map父 bean 中按问题 ID 列出的所有答案。这是一个启动示例,它使用了比您更多的自记录变量名称,以便更好地理解:

<ui:repeat value="#{bean.questions}" var="question">
    ...
    <h:selectManyCheckbox value="#{bean.answers[question.id]}">
        <f:selectItems value="#{question.answers}" />
    </h:selectManyCheckbox>
    ...
</ui:repeat>

例如

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

ui:repeat 内的 selectManyCheckbox 集合知道它属于转发器的哪个元素 的相关文章

随机推荐

  • MySQL 中应该避免使用 MEDIUMINT 吗?

    我在以下博客文章中发现了一条建议不要使用的评论MEDIUMINT 即使在 MySQL 中 也不要使用 24 位 INT 它很愚蠢 而且很慢 而且实现它的代码令人毛骨悚然 4294967295 和 MySQL INT 20 语法打击 http
  • 如何使用 Delegate.CreateDelegate 而不是 Func<> 定义委托?

    我有一个方法和两个委托 如下所示 它就是这样运行的 但我想使用Delegate CreateInstance dx 和 dy 的类型必须是Func
  • 如何在 VisualStudio 中使用 OpenCover 代码覆盖率运行 NUnit 测试?

    我是 NUnit 测试的新手 我能够为我的函数编写测试用例 现在我想要的是知道我的测试用例的代码覆盖率 为此我使用 OpenCover 但我不知道如何安装 OpenCover 并使其与 Visual Studio 2015 一起使用 任何人
  • 有没有办法抑制 TensorFlow 打印的消息?

    我认为这些信息在最初几次确实很重要 但后来就毫无用处了 它实际上使阅读和调试的情况变得更糟 我tensorflow stream executor dso loader cc 128 成功打开 CUDA库libcublas so 8 0本地
  • 错误 440:对象“PivotCaches”的方法“创建”失败

    我一直在尝试创建一个填充数据透视表的宏 然而 我不断得到这个 运行时错误 440 on the Set Cache line 以前 我遇到过其他运行时错误 但这些都很容易修复 我不明白为什么PivotCaches Create在这种情况下不
  • 解析Python文件中的所有方法和类

    我正在尝试构建一个程序 允许用户浏览到包含 python 模块的文件夹 选择文件夹后 它将列出该文件夹中的所有 python 文件以及每个模块的所有类和方法 我的问题是 有什么方法可以在不打开每个文件并解析 def 或 class 的情况下
  • Caffe的train.prototxt中平均值的顺序是什么?

    在我的咖啡馆里 train prototxt 我正在做一些输入数据转换 如下所示 transform param mirror true crop size 321 mean value 104 Red mean value 116 Blu
  • 获取声明为动态的对象的类型

    我想获取动态对象的类型 例如 dynamic tmp Activator CreateInstance assembly nmspace typeName Type unknown tmp GetType 除了上面之外 GetType 返回
  • WPF ClickOnce 错过参考

    我有一个可与本地 SQLite 和 Entity Framework Core 配合使用的 WPF 应用程序 我想使用 ClickOnce 分发我的应用程序 当我使用 Visual Studio 2017 运行它时 一切正常 但是当我使用
  • Python 检查类的实例

    有没有办法检查对象是否是类的实例 不是具体类的实例 而是任何类的实例 我可以检查一个对象不是一个类 不是一个模块 不是一个回溯等 但我对一个简单的解决方案感兴趣 isinstance 是你的朋友吗 它返回一个布尔值 可以通过以下方式使用来检
  • 用于大型密集矩阵乘法的循环平铺/分块

    我想知道是否有人可以向我展示如何有效地使用循环平铺 循环阻塞进行大型密集矩阵乘法 我在做C AB具有 1000x1000 矩阵 我按照维基百科上的循环平铺示例进行操作 但使用平铺得到的结果比不使用平铺的结果更差 http en wikipe
  • 如何让 CakePdf 在 CakePHP 3.x 中工作?

    我已经安装了CakePdf https github com FriendsOfCake CakePdf插件放在 app plugins 文件夹中并遵循所有可能的文档 因此我的设置如下 config bootstrap php Plugin
  • 在 Octave 中创建具有多个绘图的动画

    我正在使用 Octave 编写一个脚本来绘制不同时间段的函数 我希望制作一个情节动画 以便看到随时间的变化 有没有办法保存每个时间点的每个图 以便可以组合所有图来创建此动画 这有点混乱 但您可以执行以下操作 此处适用于 Octave 4 0
  • 将条形码添加到 Report Builder 3.0

    我正在尝试在我的 RDL 报告中嵌入条形码 该报告由Microsoft SQL Server 报表生成器 3 0 我在互联网上找到了几个建议的解决方案 其中之一是添加DLL参考并添加一些代码 但它不起作用 并且总是无法加载DLL 我通过使用
  • 如何从一个视图控制器弹出到另一个视图控制器

    使用 iOS 我现在有 15 个 ViewController 我想从一个 ViewController 弹出到另一个 ViewController 我正在使用这段代码 SecondViewController Sec SecondView
  • Java 在向上转换时如何处理字段? [复制]

    这个问题在这里已经有答案了 可能的重复 阴影的概念 https stackoverflow com questions 3300805 the concept of shadowing 我对 Java 在向上转换期间如何处理类的字段感到困惑
  • ReactiveCommand 完成时的通知

    我正在尝试使用 ReactiveUI ReactiveCommands 来打开和关闭已转换为可观察对象的 gRPC 流 下面显示的代码在某种程度上有效 连接按钮将导致流连接 并且我开始在订阅的 onNext 处理程序中接收数据 断开连接按钮
  • 如何在 Perl 中指定包版本?

    我对 5 10 0 之前的文档和更新的文档之间的冲突建议感到有点困惑version http search cpan org dist version模块 Perl 最佳实践 http oreilly com catalog 9780596
  • 如何获得多维数组中的唯一值

    我在溢出和谷歌上做了很多查找 但没有一个结果适合我的具体情况 我有一个名为 holder 的占位符数组 值如下 Array 0 gt Array id gt 1 pid gt 121 uuid gt 1 1 gt Array id gt 2
  • ui:repeat 内的 selectManyCheckbox 集合知道它属于转发器的哪个元素

    我正在使用 JSF 2 开发一个 Web 应用程序 我的网络应用程序除其他外还包含一系列问题 一次提出一个问题 因此一次可以看到一个问题 并且有多个答案 我使用 h selectManyCheckbox 我将问题和可能的答案存储在 Arra