我正在使用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之外,还有什么建议吗?我希望避免这种方法。
我能够在隐藏字段中维护实际实体ID,以便在验证成功后可用于更新数据库,但令人沮丧的是,在验证失败后无法找到一种维护某种可见字段中的值的方法。理想情况下,InputText字段将保留其作为输入和验证字段的功能,即使将其readonly(或disabled)属性设置为true,这将使我完全放弃隐藏字段。但似乎我无法使其以这种方式工作。除了使支持bean ConversationScoped之外,还有什么建议吗?我希望避免这种方法。