使用向导时如何将输入框值绑定到支持 bean 属性中的映射值

2024-01-07

我正在使用 Primefaces 向导组件。在一个选项卡上,我根据以前的选项卡输入(用户类型)动态创建输入框。输入框文本标签源自列表。在我的支持 bean 中,我有一个映射,其中包含作为键的输入标签和作为值的输入框输入。

单击下一步,我希望使用用户输入(对应于键)更新地图(值)

<c:forEach items="#{gdsiGeodataBean.actionCommand.fields}" var="reqs">
  <h:outputLabel for="#{reqs.name}" value="#{reqs.name}:* " />  
  <pou:inputText value="#{gdsiGeodataBean.actionCommand.values['reqs.name']}"  required="true" requiredMessage="Input is required."/> 
</c:forEach>

我的支持豆:

private List<RequiredParam> fields; // +getter (no setter required)
private Map<String, String> values; // +getter (no setter required)

public CommandAction(String actionName, String actionParams, String context) {
    this.actionName = actionName;
    this.actionParams = actionParams;
    this.contextName = context;

    //Set up parameters
    getRequiredParams();
    getOptionalParams();
    fields = getFields();
    values = new HashMap<String, String>();
}

本质上我想要的是使用文本输入框中的用户输入来更新地图值。


您将输入值绑定到地图的方法并不完全正确。

<pou:inputText value="#{gdsiGeodataBean.actionCommand.values['reqs.name']}"  required="true" requiredMessage="Input is required."/> 

您正在指定一个fixed映射键而不是基于当前迭代的动态映射键#{reqs}。这样,所有提交的值都将以同一个固定映射键结束"reqs.name",其中每个字段都会相互覆盖,以便您只能获取映射中最后一个字段的值。

您需要删除这些单引号才能使其成为真正的动态键。

<pou:inputText value="#{gdsiGeodataBean.actionCommand.values[reqs.name]}"  required="true" requiredMessage="Input is required."/> 

无关对于具体问题,即使这种方法在您的问题中按原样使用时会起作用,<c:forEach>在某些情况下会失败。例如。当在复合组件或迭代 JSF 组件内部使用时。而是使用<ui:repeat>反而。也可以看看JSF2 Facelets 中的 JSTL...有意义吗? https://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense

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

使用向导时如何将输入框值绑定到支持 bean 属性中的映射值 的相关文章

随机推荐

  • 容器“Android 依赖项”引用不存在的库

    请原谅我的英语不好 我是法国人 所以 我的 android 项目遇到了问题 我收到此错误容器 Android 依赖项 引用不存在的库 我在谷歌上进行了大量搜索 结果是 该库是一个android库 大小写已勾选 该库在我的项目中被 调用 An
  • 有没有办法通过Python(pywin32)访问Excel上的切片器

    我正在使用 pywin32 Excel 工作簿 我在一张纸上有一些图表需要保存 问题是 该工作表中有一个切片器 可以过滤某个变量 我没有找到它的 pywin32 文档 而且我在这里没有任何关于我可以 或不能 如何做到这一点的线索 谢谢 有对
  • 适用于 .NET 的 SAML 库/组件

    任何人都可以推荐用于为 NET 中的联合登录实现生成 SAML 断言的库吗 如果它能与 ASP NET 会员 API 集成 那就更理想了 如果其他人偶然发现这一点 http saml2 codeplex com http saml2 cod
  • FTP 目录列表以 HTML 形式返回,而不是简单的 Linux ls 输出

    相关如何强制 C FtpWebRequest 使用直接 IP 访问 Internet 而不是通过 HTTP 代理 https stackoverflow com questions 28187521 how can i force a c
  • 为什么我不能在类外部重载 C++ 转换运算符作为非成员函数?

    这个问题以前曾被问过 但我觉得提问者在从未真正得到真正答案的情况下匆忙地认为答案是正确的 也许没有什么原因 这需要稍后纳入标准 你告诉我 不允许使用非成员函数重载 C 转换运算符的理由是什么 https stackoverflow com
  • wait() 在 Unix 上做什么?

    我正在读关于wait Unix 系统书中的函数 本书包含一个程序 该程序具有wait NULL 在里面 我不明白那是什么意思 在其他程序中有 while wait NULL gt 0 这也让我摸不着头脑 有人能解释一下上面的函数在做什么吗
  • 在 mac 上使用 macport 安装时 boost 库的默认位置是什么?

    我刚刚在 mac 上安装了 boost 使用 macport 和以下命令 sudo port install boost 它安装得很好 但我不知道 boost 库安装在哪里 它应该在哪里 我怎样才能找到它 标题应该位于 usr local
  • 即使循环中发生错误如何继续游标循环

    我想将一个表的行插入到另一个表中 为此 我有以下程序 ALTER PROCEDURE LOADDATA a AS BEGIN TRUNCATE TABLE STIDENT A DECLARE SID INT DECLARE SNAME VA
  • 对每个集合视图单元格使用单个表视图控制器

    我有 5 个集合视图单元格 名称为 餐厅 商店 医疗 客厅 公园 等 所以现在我设置了 10 个视图控制器 并将表视图放置在每五个控制器内 我调用 json 数据并在表视图中显示 我还有一个自定义单元格 我在其中用于所有 iew contr
  • ios 当我尝试注册我的应用程序时,如何取消选择游戏中心和应用内购买

    我正在尝试在苹果开发者门户中注册我的应用程序 但您可以在那里选择您的应用程序将要使用的服务 我的问题是我不会使用 游戏中心 或 应用内购买 我怎样才能取消选择这些 我将非常感谢你的帮助 Use Wildcard App ID 如中所示Reg
  • 使用 -Ylog-classpath 运行 sbt

    当我运行 sbtcompile 时出现这样的错误 missing or invalid dependency detected while loading class file DefaultReads class error Could
  • PHP 将 Excel (.xls) 转换为 pdf [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何 php java 开源软件转换器或 php 库可以将 xls 文件转换为 pdf 文档 概
  • 如何使用R将年度数据转换为月度数据?

    我有2000年至2015年15年的逐年GDP数据 我想将这些数据转换为月度数据 其中只有月份和年份 我只想将当年的值复制到所有月份 我怎样才能在 R 中做到这一点2010 年的值是 1708 我想为 2010 年的所有月份复制相同的值 我的
  • 最长的数字循环周期

    我试图找到小于 1000 的数字 该数字除以 1 时会产生最长的重复数字串 我有一个十进制数字列表 必须找到具有最长重复序列的数字 这是我到目前为止所拥有的 numbers 2 999 decimal representations num
  • 由于 Android 不活动,15 分钟后自动注销

    如何在android中使用计时器因用户不活动而在15分钟后自动注销 我在 loginActivity java 中使用以下代码 public class BackgroundProcessingService extends Service
  • 错误:无法显示子报表。子报告在预览中有效 - 但在部署时无效

    我有一个运行多个子报告的主报告 我的一个子报告在预览中运行得非常好 但是当我部署该报告并从浏览器运行它时 我只是得到 错误 无法显示子报表 我做了一些研究 但仍然不确定问题是什么 我在不同的浏览器中尝试过 主报告和子报告的数据源都使用相同的
  • 类型错误:无法读取未定义的属性“measureInWindow”

    环境 Windows 10 Node js 10 x Expo 35 0 0 React 16 8 React native 0 62 0 React navigation 3 0 7 开发了一个简单的应用程序来测试 Android 应用程
  • 如何创建提交登录表单的书签

    我意识到从安全角度来看这并不是很好 但请幽默一下 有没有办法创建一个提交表单 例如登录表单 的书签 例如 这有效 但前提是当前浏览器窗口中加载了页面 javascript function document body innerHTML
  • 如何在android中生成release key

    我已经完成了简单的地图应用程序 这里我从 debug keystore 获得了 api 密钥 它在模拟器上工作正常 当我尝试将其作为 apk 文件获取并在设备上运行时 它没有显示地图 我想我需要为其创建发布密钥 我如何为其生成发布密钥以及如
  • 使用向导时如何将输入框值绑定到支持 bean 属性中的映射值

    我正在使用 Primefaces 向导组件 在一个选项卡上 我根据以前的选项卡输入 用户类型 动态创建输入框 输入框文本标签源自列表 在我的支持 bean 中 我有一个映射 其中包含作为键的输入标签和作为值的输入框输入 单击下一步 我希望使