我是JSF的新手,并不确定一些基本问题。
我找到了几种为输入字段定义验证的方法,但我不确定哪种方法是正确的。
我正在使用ExtVal进行bean验证和jsf验证。
我应该在我的实体bean中使用@Size , @Length
之类的验证注释,还是应该在托管bean中?每个选项的差异是什么?
这个问题让我想到一个更基本的问题,我仍然不太懂 -
我有一个带有字段及其setter和getter的实体bean,我还有一个托管bean和一个xhtml文件,其中包含一个在输入中显示fileds的表单。
我应该在托管bean中使用getter和setter定义相同的字段吗?当我从xhtml文件中接近它们时,我是MBname.FiledName
吗?或者最好不要在托管bean中再次创建字段,并通过调用MBname.details.FiledName
(当详细信息返回对象时)从xhtml中解决它们?
再一次,每个approch的差异是什么?
感谢提前。
答案 0 :(得分:4)
我应该在我的实体bean中使用@Size,@ Length等验证注释,还是应该在托管bean中?每个选项的差异是什么?
取决于具体的功能要求。关键点是:验证应该如何重复使用?如果在实体级别配置,则它可以重用于JSF以外的所有框架。如果在JSF级别配置,那么它不能重复用于JSF以外的框架,这些框架碰巧使用相同的实体。
我应该在托管bean中使用getter和setter定义相同的字段吗?当从xhtml文件中接近它们时,我是通过MBname.FiledName来做的吗?或者最好不要在托管bean中再次创建字段,并通过调用MBname.details.FiledName(当详细信息返回对象时)从xhtml中解决它们?再一次,每个approch的差异是什么?
您不应在控制器中复制/扩展数据模型。这毫无意义。这不是DRY,因此只是维护问题。