0
나는 primefaces 데이터 테이블에 의해 백업 된 CRUD 폼을 가지고있다. 새 엔티티가 작성 될 때마다 테이블이 갱신됩니다. 그러나 생성은 한 번만 작동하므로 동일한 뷰의 후속 요청은 Backing Bean 작업을 트리거하지 않습니다. 면밀한 조사를 통해 내가 발견 한 유일한 차이점은 후속 요청에 POST 데이터에 javax.faces.ViewState
속성이 없기 때문에 완전히 새로운 빈을 만드는 것이라고 생각합니다.JSF 2.2에서의 Ajax 포스트 백 새로운 뷰를 생성하는 뷰 범위 빈
JSF 2.2의 기본값입니까?
이<h:form id="create">
<p:outputLabel value="label" for="inp"/>
<p:inputText id="inp" value="#{newJSFManagedBean.newEntity.foo}"/>
<p:commandButton action="#{newJSFManagedBean.create()}"
update="@form, :table" value="Create"/>
</h:form>
<br />
<p:dataTable value="#{newJSFManagedBean.entities}" var="entity"
id="table">
<p:column headerText="foo">#{entity.foo}</p:column>
</p:dataTable>
는 콩 : 너무
@Named
@javax.faces.view.ViewScoped
public class NewJSFManagedBean implements Serializable {
private NewEntity newEntity;
@EJB
private NewEntityFacade entityFacade;
private Collection<NewEntity> entities;
@PostConstruct
private void init() {
newEntity = new NewEntity();
entities = entityFacade.findAll();
}
// ...
}
는 EJB가 :
이@Stateless
public class NewEntityFacade {
@PersistenceContext
private EntityManager em;
// ...
}