2013-06-23 8 views
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; 

    // ... 

} 

답변

0

이 문제가 분명히, 글래스 피쉬 (4)에 문제가 그런 일이 여기

뷰입니다 update 특성에 양식 ID가 포함 된 경우 해결 방법은 전체 양식 대신 내부 컨테이너를 업데이트하는 것입니다.

여기에 더 있습니다 : http://forum.primefaces.org/viewtopic.php?f=3&t=31280