2
요청 범위에 정의 된 세션 범위와 컨트롤러 빈에 정의 된 양식 bean이 있습니다. JSF를 사용하여 세션 범위가 지정된 빈을 요청 범위의 빈에 주입합니다.JSF 관리 Bean 라이프 사이클을 이해하는 데 도움이됩니다.
<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와 새로운 빈을 반환하고 다른 속성을 설정한다는 것입니다. 그런 다음 반환 된 빈을 사용하여 로컬 빈을 설정합니다. 이 시점에서 세션 범위 Bean을 설정해야합니까?
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;
}
}
저장을 클릭 한 후 사용자가 동일한 페이지에 머물러 있고 데이터 서비스에서 반환하는 값을보고 싶습니다. 양식의 "날짜 작성"및 "마지막 수정 날짜"필드는 Controller.form.createDate 등에 바인드됩니다. – Future429