我们是 JSF 的新手,正在努力解决以下问题。
我们有一个搜索页面,用户可以在其中单击按钮转到详细信息页面。到达此详细信息页面时,已正确显示所选记录。
当用户编辑值时,验证器会启动。自定义验证器会检查两件事:-如果记录已经在数据库中(唯一)-如果值不为空
当用户删除当前值,为空字符串,提交时,验证器说该值不允许为空。
当用户将值改回之前的值并提交时,验证器应验证当前值并返回搜索页面。
现在问题如下: 使用时:
<h:outputLabel value="Supplier Id" />
<h:outputLabel value="#{flash.keep.supplier.id}" />
一切正常。但是我们想对用户隐藏 id 并使用隐藏字段。
删除 outputLabel 并使用时:
<h:inputHidden value="#{flash.keep.supplier.id}" />
我们的应用程序认为我们正在尝试插入一个新的供应商,而不是保存已经存在的同名供应商。
我们在 NetBeans 开发环境中使用 JSF 2.0、GlassFish Server 3.1.2。
bean 是 RequestScoped
源代码位于: https ://bitbucket.org/dasdan20/timereg4wb-web
视图位于: Web/suppliers/search.xhtml Web/suppliers/ addedit.xhtml
bean 和支持代码位于:src/task/SupplierTask.java src/task.validation/SupplierUniqueValidator src/domain/Supplier.java
数据库后端是 MySQL:可以在以下位置找到数据库的备份:src/MySQLDatabase
提前致谢
K&K