【发布时间】:2015-02-25 21:46:13
【问题描述】:
当一个 JSF 表单域被连接到一个实体 bean 域(映射到一个 DB 域)时,实体 bean 中的每个 setter 都会被调用,而不管用户是否在前端改变了表单域的值,即未更改字段的 setter 与已更改字段的调用相同,但其新值与旧值相同。
我的问题很简单:有没有办法将JSF 配置为仅调用映射到前端已更改字段的设置器?这样做的原因是我有一个要求,我必须检测每个持久化上的增量并记录它们,更多信息可以在this question 中阅读。
【问题讨论】:
-
如果 jsf 那样做呢?您将如何检测该字段是否(未)更改并记录该字段?我在 Internet/stackoverflow 上搜索了几种解决方案,并找到了一些与您的其他帖子相关的链接。所以我认为其他帖子仍然比这个问题更相关
-
如果 JSF 这样做了,我可以修改每个 setter 以将该字段添加到更改的字段集中,而无需检查新 val 是否与旧 val 不同。
-
当然,对于另一个问题,无需进行单独的现场检查的优雅解决方案将是更可取的。这只是 B 计划
-
如果您创建一个基本实体并在其中完成所有工作,那么将其添加到一组更改的字段或检测到更改是一个很小的区别。它只是在 setter 中添加一个调用。我个人会以不同的方式处理它,但会在您的其他帖子中回复
标签: jsf logging getter-setter