如何通过验证持久化JSF视图参数

3
我正在使用JSF 2.0/CDI和PrimeFaces 2.2.1开发一些CRUD表单,通过在datatable中点击链接并将实体的标识符作为View Parameter传递给CRUD表单,用户可以查看或更新现有实体的属性。我在一个PrimeFaces InputText字段中显示实体的ID(通常只是一个整数),并将readonly属性设置为true(因为我不能让它们更改它),以便用户知道他们正在编辑哪个实体。CRUD表单的支持bean是RequestScoped,这样做很好,除非验证失败。在这种情况下,View Parameter的值会丢失,因此验证失败时实体ID字段上将显示0。
我能够在隐藏字段中维护实际实体ID,以便在验证成功后可用于更新数据库,但令人沮丧的是,在验证失败后无法找到一种维护某种可见字段中的值的方法。理想情况下,InputText字段将保留其作为输入和验证字段的功能,即使将其readonly(或disabled)属性设置为true,这将使我完全放弃隐藏字段。但似乎我无法使其以这种方式工作。除了使支持bean ConversationScoped之外,还有什么建议吗?我希望避免这种方法。
1个回答

1
实际上,在以稍微不同的方式在谷歌搜索我所寻找的内容后,我在下面的链接中发现了一个新颖的建议,似乎可以干净地解决问题。与其将实体ID字段设置为只读或禁用,我将其保持启用状态,但是一旦它获得焦点就模糊化。我能够摆脱隐藏字段,用户无法更改该值,并且它可以在验证失败后继续存在。
<p:inputText id="entid" value="#{RequestBean.entityID}" onfocus="blur();" />

http://www.codingforums.com/archive/index.php/t-1738.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接