我将 JSF 2.0/CDI 和 PrimeFaces 2.2.1 用于许多 CRUD 表单,这些表单允许用户通过单击数据表中的链接来查看或更新现有实体的属性,其中实体的标识符被传递到CRUD 形式作为视图参数。我在 PrimeFaces InputText 字段中的 CRUD 表单上显示实体的 ID(通常只是一个整数),并将 readonly 属性设置为 true(因为我不能让他们更改它),以便用户知道他们正在编辑哪个实体。 CRUD 表单的支持 bean 是 RequestScoped,除非验证失败,否则它可以正常工作。在这种情况下,视图参数的值会丢失,因此验证失败时实体 ID 字段中会显示 0。
我能够在隐藏字段中维护实际的实体 ID,因此一旦验证成功就可以更新数据库,但令人抓狂的是我无法找到一种方法来维护某种可见字段中的值验证失败后。理想情况下,即使将其只读(或禁用)属性设置为 true,InputText 字段也将保留其作为输入和验证字段的功能,这将使我完全放弃隐藏字段。但我似乎无法让它以这种方式工作。除了制作我希望避免的支持 bean ConversationScoped 之外,还有什么建议吗?
实际上,在以不同的方式陈述了我在谷歌搜索中寻找的内容之后,我在下面的链接中发现了一个新颖的建议,该建议似乎运行良好。我没有将实体 ID 字段设置为只读或禁用,而是将其保留为启用状态,但在获得焦点后立即对其进行模糊处理。我能够摆脱隐藏字段,用户无法更改该值,并且它可以在验证失败后幸存下来。
<p:inputText id="entid" value="#{RequestBean.entityID}" onfocus="blur();" />
http://www.codingforums.com/archive/index.php/t-1738.html http://www.codingforums.com/archive/index.php/t-1738.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)