JSF创建表单是否有最佳实践?

时间:2014-07-18 13:24:22

标签: forms jsf

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

选项1:

查看:

<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
}

选项2:

查看

<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
}

1 个答案:

答案 0 :(得分:0)

您对托管bean的优化方式取决于您对JSF提供的MVC方法的深度。如果你想开发一个完整的JSF应用程序(基于MVC理由),那么你基本上会有一个起点:

  • Facelet页面作为视图:它代表信息并处理用户操作;
  • 托管bean 作为控制器:它处理操作并将渲染委托给右视图;
  • 实体模型:它包含所有数据。

在一个小型初学者风格的应用程序中,您可以将模型与控制器混合,但随着应用程序的增长,对这些bean的管理可能会很麻烦。在实际应用程序中,托管bean通常包含其成员的相关实体。

因此,选项2是一种更清晰的MVC方法,可以更好地分离关注点。

如需更广泛的图片,请咨询What components are MVC in JSF MVC framework?