Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 如何通过验证持久化JSF视图参数_Jsf 2_Primefaces - Fatal编程技术网

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

Jsf 2 如何通过验证持久化JSF视图参数,jsf-2,primefaces,Jsf 2,Primefaces,我将JSF 2.0/CDI和PrimeFaces 2.2.1用于许多CRUD表单,这些表单允许用户通过单击数据表中的链接来查看或更新现有实体的属性,其中实体的标识符作为视图参数传递给CRUD表单。我在CRUD表单的PrimeFaces InputText字段中显示实体的ID(通常只是一个整数),readonly属性设置为true(因为我不能让他们更改),这样用户就知道他们正在编辑哪个实体。CRUD表单的支持bean是RequestScope,除非验证失败,否则它工作正常。在这种情况下,View参

我将JSF 2.0/CDI和PrimeFaces 2.2.1用于许多CRUD表单,这些表单允许用户通过单击数据表中的链接来查看或更新现有实体的属性,其中实体的标识符作为视图参数传递给CRUD表单。我在CRUD表单的PrimeFaces InputText字段中显示实体的ID(通常只是一个整数),readonly属性设置为true(因为我不能让他们更改),这样用户就知道他们正在编辑哪个实体。CRUD表单的支持bean是RequestScope,除非验证失败,否则它工作正常。在这种情况下,View参数的值将丢失,因此验证失败时实体ID字段中将显示0


我能够在一个隐藏字段中维护实际的实体ID,以便在验证成功后可以更新数据库,但令人恼火的是,在验证失败后,我无法找到在某种可见字段中维护值的方法。理想情况下,InputText字段将保留其作为输入和验证字段的功能,即使其readonly(或disabled)属性设置为true,这将使我完全放弃隐藏字段。但我似乎无法做到这一点。除了设置支持bean ConversationScope(我更愿意避免)之外,还有什么建议吗?

事实上,在谷歌搜索中说明了我要寻找的内容后,我在下面的链接中发现了一个新颖的建议,似乎效果很好。我没有将实体ID字段设置为只读或禁用,而是将其保留为启用状态,但在它接收到焦点后立即将其模糊。我可以去掉隐藏字段,用户不能更改值,它可以在验证失败后生存下来

<p:inputText id="entid" value="#{RequestBean.entityID}" onfocus="blur();" />