0

ページを更新したときにのみデータテーブルが更新されます。いくつかの解決策を見つけましたが、どれもうまくいきませんでした。たとえば、更新を「:companyForm:companyPanel」に変更すると、保存ボタンが消えます。コロンを削除したところ、ボタンが表示されるようになりましたが、データテーブルは更新されません。これが私のjsfページです。

<h:form id="companyForm" prependId="false">
  <p:panel id="companyPanel">
    <p:dataTable id="companyListTable">
     //columns
    </p:dataTable>
  </p:panel>

<p:outputPanel id="newDatePanel">
  <p:commandButton value="Save"                                         
    update="companyForm:companyPanel
    companyForm:newDatePanel"                                         
    action="#{myController.save()}"/>
</p:outputPanel>
</form>

そして私のスプリングコントローラー。

init(){
    companyList = service.getAllCompany();
}

public void save(){
    service.save(company);
}
4

1 に答える 1

2

実際には、ID が台無しになっています。そうしないと、コンポーネントが更新されていたはずです。

コンポーネントの実際のクライアント ID は、タグの名前付けコンテナーによって異なります。この場合、名前付けコンテナーは<h:form>. フォーム タグにプロパティを含めた場合prependId="false"、ネストされたクライアント ID は に<p:panel id="companyPanel">なりますcompanyPanel。それ以外の場合 (prependId完全に省略した場合)、それは になりますcompanyForm:companyPanel

それでも、同じネーミング コンテナー (フォーム) 内のコンポーネントを更新する場合は、フォーム ID を前に付けて単純にする必要はありません<p:commandButton update="companyPanel">。コロンもフォーム ID も必要ありません。

コードの現在の状態では、 id を持つコンポーネントはありませんcompanyForm:companyPanel

于 2013-04-25T10:39:52.870 に答える