【问题标题】:JSF Creating Forms is there a Best Practice?JSF 创建表单有没有最佳实践?
【发布时间】:2014-07-18 13:24:21
【问题描述】:

我主要使用第一个选项,但我遇到了第二个选项,它似乎可以用更少的代码更快地完成所有事情。哪种方式更适合使用 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
}

【问题讨论】:

  • 那么选项 2 有什么问题,除了所有的拼写错误和缺少引号?
  • 选项 2 更好,尤其是当 bean 中有多个实体类型实例且实体中有多个字段时。

标签: forms jsf


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2012-03-29
    相关资源
    最近更新 更多