首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >帮助我理解JSF托管bean生命周期

帮助我理解JSF托管bean生命周期
EN

Stack Overflow用户
提问于 2009-12-01 01:13:47
回答 1查看 3.4K关注 0票数 2

我在会话作用域中定义了一个表单bean,在请求作用域中定义了一个控制器bean。我使用JSF将会话范围的bean注入到请求范围的bean中。

代码语言:javascript
复制
<managed-bean>
<managed-bean-name>Controller</managed-bean-name>
<managed-bean-class>
  com.mycomp.Controller
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>form</property-name>
<value>#{Form}</value>
</managed-property>
</managed-bean>

<managed-bean>
  <managed-bean-name>Form</managed-bean-name>
   <managed-bean-class>com.mycomp.form</managed-bean-class>
   <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

问题是,当我保存表单时,我的持久层返回一个设置了ID、create date和其他属性的新bean。然后,我使用返回的bean设置本地bean。我应该在这个时候也设置会话作用域的bean吗?

代码语言:javascript
复制
class Controller {

  private Form form;
  // getters and setters here
  ...

  public void save() {
    Form f = dataservice.save(form);
    this.form = f;

    // This
    //FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("Form", form);

    // or this?
    //FacesContext.getCurrentInstance().getApplication().createValueBinding(
    //          "#{Form}").setValue(
    //          FacesContext.getCurrentInstance(), form;
    }       
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-01 01:32:38

你不需要做任何事。这些更改已经反映在“form”bean中。所以你基本上可以继续使用

代码语言:javascript
复制
public void save() {
    dataservice.save(form);
}

假设dataservice做得足够好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1821122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档