2016-04-08 7 views
0

ボタンのクリック時にページの一部を更新しようとしています。p:commandButtonは部分的ではなくページ全体を更新しますが、f:ajaxは正常に動作します。

のtemplate.xhtml

<h:form prependId="false"> 

     <h:commandButton value="NEWS" action="news"> 
      <f:ajax render="newsContent"></f:ajax> 
     </h:commandButton> 

     <h:panelGroup layout="block" id="newsContent"> 
      <ui:insert name="newsContent"> 
       <ui:include src="/WEB-INF/partials/news/news.xhtml"/> 
      </ui:insert> 
     </h:panelGroup> 

    </h:form> 

/WEB-INF/partials/news/news.xhtml

<h:commandLink action="newsdetails"> 
    <f:ajax render="newsContent" /> 
</h:commandLlink> 

newsdetails.xhtml: は今、私は以下の持っています

<h:commandButton value="INDEX" action="index"> 
    <f:ajax render="newsContent" /> 
</h:commandButton> 

は今その作業罰金が、私は

<p:commandButton value="INDEX" action="index" update="newsContent"/> 

のようなもので<h:commandbutton>を交換する場合は、内容が更新されますが、ページが更新されます。私がここで間違っていることは何ですか?

+0

ページが更新されたとはどういう意味ですか?リロード?または、あなたは範囲を緩めますか? – tak3shi

+2

'prependId =" false "'を使用しないでください。使用しないでください。それはJSF 1.2からの残念な残しです。 – BalusC

答えて

0

私はそれを最後に解決しました。

ボタンにactionListenerを使用しました。

<p:commandLink actionListener="#{news.setCurrent(n)}" update="newsContent" /> 

含めるのソースは今豆から読み込まれます:

<h:panelGroup layout="block" id="newsContent"> 
    <ui:insert name="newsContent"> 
     <ui:include src="#{news.page}"/> 
    </ui:insert> 
</h:panelGroup> 

とページのgetterのようなものになります。Pag​​eloadオン

public String getPage() { 
    if(current == null){ 
     return "/WEB-INF/partials/news/news.xhtml"; 
    } 
    return "/WEB-INF/partials/news/details.xhtml"; 
} 

をのCurrentObjectはまだnullですnews.xhtmlが表示されます。クリック後、現在のオブジェクトに設定され、ページは詳細ページに更新されます。すべてページの再ロードなし。

0

あなたは、任意の有効なAjaxのアクションを呼び出すされていません。

インデックスページをリロード避けるためにaction="index"を削除します。

+0

これが答えであれば、それはまだ変わっています... 1つは動作し、もう1つは動作しません... – Kukeltje

+0

ボタン上のaction = "index"を削除するだけで何もしません。 indexはコンテンツを含むxhtmlファイルです。これは更新する必要があります。 – user1882509

+0

p:commandButtonを使用すると、デフォルトでajaxリクエストが実行されます。このために必要な処置はありません。 newsContentの更新を選択しました。何も起こらない場合は、必要な変更を準備するためにactionListenerでコードを呼び出す必要があるかどうかを確認する必要があります。 – tak3shi

関連する問題