Forms JSF创建表单有最佳实践吗?

Forms JSF创建表单有最佳实践吗?,forms,jsf,Forms,Jsf,我主要使用了第一个选项,但我选择了第二个选项,它似乎可以用更少的代码更快地完成所有事情。使用JSF创建表单哪种方式更好?是否有更好的选项用于为具有许多服务器端和客户端验证的应用程序创建表单?我真的不喜欢像newperson()这样的构造函数。你有什么建议?多谢各位 选项1: 视图: 选项2: 看法 删除托管bean的方式取决于JSF提供的MVC方法的深度。如果您想开发一个完全有价值的JSF应用程序(基于MVC),那么作为起点,您基本上有: Facelet页面作为视图:它表示信息并处理用户操作

我主要使用了第一个选项,但我选择了第二个选项,它似乎可以用更少的代码更快地完成所有事情。使用JSF创建表单哪种方式更好?是否有更好的选项用于为具有许多服务器端和客户端验证的应用程序创建表单?我真的不喜欢像
newperson()
这样的构造函数。你有什么建议?多谢各位

选项1:

视图:

选项2:

看法


删除托管bean的方式取决于JSF提供的MVC方法的深度。如果您想开发一个完全有价值的JSF应用程序(基于MVC),那么作为起点,您基本上有:

  • Facelet页面作为视图:它表示信息并处理用户操作
  • 托管bean作为控制器:它处理动作并将渲染委托给右视图
  • 实体作为模型:它保存所有数据
在一个小的初学者风格的应用程序中,您可以将模型与控制器混合使用,但是随着应用程序的发展,管理这样的bean可能会很麻烦。在现实世界的应用程序中,托管bean通常包含与其成员相关的实体

因此,选项2是一种更清晰的MVC方法,具有更好的关注点分离


要了解更广泛的情况,请咨询。

那么,除了所有的拼写错误和缺少的引号之外,选项2还有什么问题?选项2更好,尤其是如果bean中有多个实体类型实例,实体中有更多字段。
<h:inputText value=#{bean.fisrtName}/>
<h:inputText value=#{bean.lastName}/>
<h:commandButton action=#{bean.submit()}/>
private firstName;
private lastName;

public String submit(){
    Person person = new Person(firstName, lastName);
    // do something with person
}
<h:inputText value=#{bean.person.fisrtName}/>
<h:inputText value=#{bean.person.lastName}/>
<h:commandButton action=#{bean.submit()}/>
private Person person

@PostConstruct
public void init(){
    person = new Peson();
}

public String submit(){    
    // do something with person
}