我们是JSF的新手,正在努力解决以下问题。
我们有一个搜索页面,用户可以点击按钮转到详细信息页面。 到达此详细信息页面时,所选记录将正确显示。
当用户编辑该值时,验证器就会启动。 自定义验证器检查两件事: - 如果记录已经在DB中(唯一的) - 如果值不为空
当用户删除当前值时,提交一个空字符串,验证器表示该值不允许为空。
当用户将值更改回先前的值并提交时,验证程序应验证当前值并返回搜索页面。
现在问题如下: 使用时:
<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
观点如下: 网络/供应商/ search.xhtml 网络/供应商/ addedit.xhtml
bean和支持代码: SRC /任务/ SupplierTask.java SRC / task.validation / SupplierUniqueValidator SRC /域/ Supplier.java
数据库后端是MySQL:数据库的备份可以在以下位置找到: SRC / MySQLDatabase
提前致谢
K&amp; ķ
答案 0 :(得分:0)
你可能做错了。制作一个具有更长范围的新Bean,以便记住&#34;选择供应商。
@RequestScoped
SupplierController
// Almost everything here
@SessionScoped
StatefulSupplierController
// State that needs to be saved