2016-08-02 5 views
0

私はp:dataTableを持っています。各行にはp:commondButtonh:outputTextがあり、プロジェクト名を表示しています。 はp:commandButtonをクリックすると、anfrageErfassenModel.applyProjekt() ActionListenerを呼び出し、すぐに はanfrageErfassenModel.anfrage.nameためp:inputTextの値を更新する必要があります。更新p:pからのinputText:commandButton

JSFページ - anfrageErfassen.xhtml:

<h:form id="formAnfrageErfassen"> 

    <p:panelGrid columns="3" id="anfrage"> 
     <p:outputLabel for="name" value="#{bundle['anfrage.name']}"/> 
     <p:inputText id="name" value="#{anfrageErfassenModel.anfrage.name}" required="true" /> 
     <p:message for="name" id="message4name" display="text"/> 
    </p:panelGrid> 

    <p:dataTable var="projekt" ...> 
     <p:column> 
      <p:commandButton icon="fa fa-check" 
       title="Apply Project" 
       update=":formAnfrageErfassen:anfrage" 
       immediate="true" 
       actionListener="#{anfrageErfassenModel.applyProjekt(projekt)}"/> 
     </p:column> 
     <p:column> 
      <h:outputText value="#{projekt.name}"/> 
     </p:column> 
    </p:dataTable> 
</h:form> 

豆 - AnfrageErfassenModel.java: - >しかし

@Named 
@ViewScoped 
public class AnfrageErfassenModel implements Serializable { 

    private Anfrage anfrage; // with getter/setter 

    public void applyProjekt(final Projekt projekt) { 
     logger.entry(projekt); 
     anfrage = anfrageRestClient.create(); 
     anfrage.setName(projekt.getName()); // take name from projekt 
     logger.debug("anfrage.name=" + anfrage.getName()); 
     logger.exit(); 
    }  
} 

のactionListenerが を期待通りにモデルの値が設定されていることの結果anfrage.setName(projekt.getName())を呼び出しますp:inputTextは更新されていません!

私は、immediate="true"は、APPLY_REQUEST_VALUESフェーズの後にRENDER_RESPONSEフェーズが続くことを知っています。

inputTextフィールドの値をモデルの現在の値で更新するにはどうすればよいですか? p:inputTextの代わりにp:outputTextを使用しますが、フィールドはユーザーが編集できる必要があるため、inputTextが必要です。

私はWildFly 10.0.0.FinalでPrimefaces 6.0を使用しています。

おかげで、よろしく、 ライナー@Kukeltjeへ

+0

''を追加しようとしましたか? –

+0

@ YagamiLight:Ajaxは 'p:commandButton'に組み込まれています。そこにajaxタグを追加する必要はありません。 – Kukeltje

+0

@Kukeltjeは私が時々動作すると信じています –

答えて

0

おかげで - のcommandButtonにprocess="@this"を追加するには、問題を解決しました!

+0

Stackoverfkowの良い習慣は、コメント中に誰かが解決策を持っている場合、その人に答えとして投稿するように依頼することです。そうすれば、彼らは自分の努力のために評判のポイントを得ることができます。今私は個人的に常に評判のポイントを望んでいませんが、それでも。そして答えにはなぜそれが解決策であるかについての何らかの説明もあるはずです。答えを改善してください。 – Kukeltje

関連する問題