p:dataTable 中的 h:selectOneMenu 未提交其值

2024-01-23

我有关于 selectOneMenu 和设置值的问题。我有一张对象示例光盘,其中包含 ID、文本和List<SampleDescValues>。对于每个数据表行,文本是输出标签,选择一个菜单值是List<SampleDescValues>. XHTML:

    <h:panelGroup id="tables">
    <p:dataTable resizableColumns="true" 
             var="sampleDesc" id="SampleDescTable" rowIndexVar="rowIndex"
                     value="#{sampleBean.sampleDescList.list}" 
                     rendered="#{sampleBean.sampleDescList.list.size() gt 0}">
            <p:column>
                    <h:outputLabel value="#{sampleDesc.sampleDescText}"/>
                </p:column>
        <p:column>
            <h:selectOneMenu required="#{sampleBean.sampleDescList.list.size() gt 0}" converter="#{sampleDescValueConverter}" 
                                                         id="SampleDescValue" value="#{sampleBean.selectedSampleDescList.get(rowIndex)}">                                                         
                <f:selectItem itemLabel="Select One" itemValue="#{null}"/>
                            <f:selectItems value="#{sampleDesc.sampleDescValues}" var="sdv" 
                                       itemLabel="#{sdv.sampleDescValuesText}" itemValue="#{sdv}" />

                        </h:selectOneMenu>
                </p:column>    
        </p:dataTable>
</h:panelGroup>   

我已经设置了转换器并且它可以工作,因为我将其设置为单个 SampleDescValue 并设置了该值。

问题是,当我尝试使用数据库中的示例填充表单时,它只能设置其中一个下拉菜单,而可能存在无限数量的选择菜单

我将选择的值设置为private List<SampleDescValue> selectedSampleDescList;

当我尝试提交时它什么也不做,它在数据表未呈现时起作用。


您的菜单值错误:

<h:selectOneMenu value="#{sampleBean.selectedSampleDescList.get(rowIndex)}">

不可能执行set对该 EL 表达式进行操作。

请改用大括号表示法:

<h:selectOneMenu value="#{sampleBean.selectedSampleDescList[rowIndex]}">

请注意,这需要一个非空值selectedSampleDescList。因此,请确保您已经使用正确初始化它new ArrayList<>()预先。 EL 不会为你做这些事。它只会使用设置列表项List#add(index, object) method.

也可以看看:

  • 我们的 EL 维基页面 https://stackoverflow.com/tags/el/info

无关对于具体问题,这个表达式

#{sampleBean.sampleDescList.list.size() gt 0}

可以简化如下

#{not empty sampleBean.sampleDescList.list}

这在required的属性<h:selectOneMenu>因为它会always评价true在那时候。只需使用required="true"直接代替。

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

p:dataTable 中的 h:selectOneMenu 未提交其值 的相关文章

随机推荐

  • 在 Python 中绘制多个图,但具有偏移范围

    我想绘制 e 和 nu 的函数 其中 e 是偏心率 nu 是真正的异常 我只看椭圆轨道所以0
  • 在C++中使用组合时如何决定类属性应该是指针还是值?

    请参阅此示例 大学的班级有一个主任和很多学生所以我的班级会是这样的 a class University Director d Student list 1000 or b class University Director d Stude
  • 将 pandas 的skipna 全局默认设置设置为 False

    对于某些 Pandas 函数 例如 sum cumsum 和 cumprod 有一个 Skipna 选项 默认设置为 True 这会给我带来问题 因为错误可能会默默地传播 所以我总是明确地将skipna设置为False sum df df
  • 使用 Json.Net 序列化 NameValueCollection 的自定义子类

    我有以下类 但尝试序列化为 Json 失败 class HL7 NameValueCollection public List
  • 角度,将范围传递给函数(将范围作为变量传递?)

    我试图将作用域传递给函数 但似乎无法让它正常工作 这就是我所拥有的 ng click clickFunction scope1 the function scope clickFunction function passedScope pa
  • `tf.set_random_seed()` 相当于种子操作?

    标题几乎说明了一切 你知道是否存在相当于tf set random seed 用于张量流中的操作种子 我试图在定义为两个不同图形的两个精确神经网络处初始化完全相同的权重 所以我想知道是否有一种方法可以为所有操作全局设置操作种子 而不必为每个
  • 将特殊字符作为消息发送;

    我正在运行 Kannel 将其用作 SMS 网关 但我刚刚意识到手机上没有收到应有的一些特殊符号 和 作为三角形发送 我该如何解决这个问题 可能是字符集问题 短信通常使用 GSM7 字符集接收 并且您提供的字符具有不同的 GSM7 数字代码
  • Conda:创建虚拟环境

    我正在尝试创建一个虚拟环境 我已按照两者的步骤进行操作Conda https conda io docs user guide tasks manage environments html and Medium https medium c
  • gulp-mocha 如何传​​递编译器标志?

    我正在尝试使用gulp mocha 模块 https github com sindresorhus gulp mocha但无法找出传递编译器标志的好方法 有没有办法将其包含在我的 gulp 任务中 也许在一个单独的管道中 从命令行运行摩卡
  • RequireJs 优化器忽略插件

    当我使用优化器时 我想忽略 require js 插件的使用 define css styles css 这总是给我这个错误Cannot read property normalize of undefined 我已将此选项设置为需要优化器
  • 您对 C# 缩小有什么建议吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要缩小一些 Silverlight cs 和 xmal 文件中的一些 C 代码 对于维护一个代码库和
  • Java 构建路径

    我有一个关于在代码运行时更改构建路径的快速问题 例如 我有一个类 它从互联网下载 jar 文件 然后将其放入与运行代码相同的目录中 如果可能的话 如何将 jar 加载到构建路径中以访问 jar 文件中的类 一些建议的修改 评论 去除jar
  • 如何判断Windows上是否安装了Java虚拟机?

    使用代码 如何确定 Windows 中是否安装了 Java VM 及其版本 假设您希望通过批处理文件以编程方式确定这一点 您可以使用reg exe工具 安装在windows system32 这个工具的烦人之处在于 无法让它仅返回退出代码
  • 编译curl后路径问题

    我使用以下命令克隆存储库后编译了curl buildconf configure with libssh2 make sudo make install 但是 在 sudo make install 之后 如果 I run curl V 我
  • Mysql 中的行级锁定

    我的表中有 5 行 1 到 5 我想要第 2 行锁定以进行某些更新 同时如果有人尝试更新第 4 行 那么他应该能够更新 我正在使用下面的代码尝试此操作 但我觉得它将锁定放在表级别而不是行级别 第一节 START TRANSACTION SE
  • iOS 导航栏项目图像大小

    我想定制我的NavigationBar按钮并使用我自己的图像 问题是尺寸应该是多少 我发现按钮大小应该是40 40 所以视网膜图像应该是80 80 这些是尺寸文档 https developer apple com ios human in
  • 如何使用 Pig 从列中解析 JSON 字符串

    我有 tsv 日志文件 其中一列由 json 字符串填充 我想用以下内容解析该列JsonLoader in a Pig脚本 我看到很多例子JsonLoader用于每行只有一个 json 字符串的情况 我还有其他专栏想要跳过 但我不知道该怎么
  • 我们如何设置ContentRootPath和WebRootPath?

    当我们从 IIS 运行我们的应用程序时 我们最终得到以下 ContentRoot 和 WebRoot ContentRoot C MyApp wwwroot WebRoot C MyApp wwwroot wwwroot 这是我们的设置方式
  • CSS 未在 Heroku 中加载

    我将应用程序部署到 Heroku 但仅加载资产 图像 CSS 文件 尤其是包含 90 CSS 的 custom css 未加载 我在本地预编译了资产并将它们推送到 Heroku 但没有成功 仅加载图像 而不加载 custom css 文件
  • p:dataTable 中的 h:selectOneMenu 未提交其值

    我有关于 selectOneMenu 和设置值的问题 我有一张对象示例光盘 其中包含 ID 文本和List