bean和jsf验证注释inisde托管bean与实体bean

时间:2012-01-30 13:14:00

标签: jsf java-ee jsf-2

我是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的差异是什么?

感谢提前。

1 个答案:

答案 0 :(得分:4)

  

我应该在我的实体bean中使用@Size,@ Length等验证注释,还是应该在托管bean中?每个选项的差异是什么?

取决于具体的功能要求。关键点是:验证应该如何重复使用?如果在实体级别配置,则它可以重用于JSF以外的所有框架。如果在JSF级别配置,那么它不能重复用于JSF以外的框架,这些框架碰巧使用相同的实体。


  

我应该在托管bean中使用getter和setter定义相同的字段吗?当从xhtml文件中接近它们时,我是通过MBname.FiledName来做的吗?或者最好不要在托管bean中再次创建字段,并通过调用MBname.details.FiledName(当详细信息返回对象时)从xhtml中解决它们?再一次,每个approch的差异是什么?

您不应在控制器中复制/扩展数据模型。这毫无意义。这不是DRY,因此只是维护问题。