2011-02-03 4 views
3

これは私のXHTMLページです:誰もがa4j:pollがreRender rich:dataTableをなぜ使用できないのか説明できますか?

<a:region> 
    <h:form> 
     <a:poll id="poll" interval="#{pollBean.pollInterval}" 
      enabled="#{pollBean.pollEnabled}" 
      timeout="#{pollBean.timeout}" reRender="poll,messagesList" /> 
    </h:form> 
</a:region> 
<h:form> 
    <rich:dataTable id="messagesList" value="#{pollBean.messages}" var="message"> 
     <h:outputText value="#{message.content}" /> 
    </rich:dataTable>    
</h:form> 

豊富:ポーリングが終了した後のdataTableコンポーネントが再レンダリングされません。代わりにui:repeatを使用した後、正常に動作します。誰も私のためにこれを説明することができますか?ありがとう。

私のアプリケーションは、Seam 2.2.1.CR2とrichfaces 3.3.3でビルドされ、JBoss 6.0.0にデプロイされています。私は、印刷すべてpollBeanプロパティおよびデバッグ、それを示唆して

@Name("pollBean") 
@Scope(ScopeType.SESSION) 
@Restrict("#{identity.loggedIn}") 
public class PollBean implements Serializable { 

    @In 
    private EntityManager entityManager; 

    private boolean pollEnabled = true; 

    private int pollInterval = 3000; 

    private int timeout = 3000; 

    /** 
    * Default constructor. 
    */ 
    public PollBean() { 
    } 

    // getters and setters omitted 

    /** 
    * @return Returns a list of messages. 
    */ 
    public List<Message> getMessages() { 
     @SuppressWarnings("unchecked") 
     List<Message> messages = this.entityManager.createQuery(
      "select message from Message message").getResultList(); 
     return messages; 
    } 
} 
+0

すべてを1つのフォームで移動しようとしましたか? – JSS

+0

@JSSは問題ではありません、複数のフォームが動作するはずです –

+0

@ JJ-それはちょうどチャンクにしたくないと同意します。 – JSS

答えて

1

ケビン、

ローカルでテストされ、コードは正常に動作しているようだ:

は、ここに私の簡単なPollBean.javaです。

+0

ありがとう、JSS。デバッグでは、a4j:pollが正常に動作し、pollBean.getMessages()が予期されたとおりに呼び出され、例外は発生しませんが、rich:dataTableはまだレンダリングされません。ここに作業コードを掲載できますか? –

+0

これは私の間違いです。テンプレートに含まれる同じid "messagesList"を持つ別のコンポーネントがあります。重複IDを削除した後、rich:dataTableが機能します。 –

関連する問題