2017-10-15 15 views
0

JSFが初めてです。私はBeanからイメージリストを取得するc:foreach要素を持っています。各画像リスト要素は、一時的なブール値フィールドを持つImageオブジェクト(私が作成)です。このフィールドは最初はfalseです。ブール値を表示するoutputTextもあります。ボタンをクリックするとブール値フィールドがtrueに設定され、outputTextが新しいブール値でリフレッシュされます。私は試みましたが、ブール値は常にfalseです。これは可能ですか?ブール値フィールドを設定するイメージのように、ブール値フィールドを取得する場所と同じでないか、foreach内のイメージ要素が更新されていないようです。内部:JPAエンティティのforeach set transientフィールドを取得して取得します。

JSFコード:

<c:forEach items="#{publicGalleryImageShowController.images}" var="img"> 
      <h:form> 
       <h:commandButton 
        action="#{img.setShowComments(true)}" 
        value="Show/Hide"> 
        <f:ajax render="co-#{img.id}" /> 
       </h:commandButton> 
      </h:form> 

      <h:panelGroup id="co-#{img.id}"> 
       <h:outputText value="#{img.showComments}" /> 
      </h:panelGroup> 
</c:forEach> 

のJava ImageクラスJPA注釈付き:

@Entity 
public class Image { 
    private boolean showComments; 
    /*other fields*/ 

    @Transient 
    public boolean isShowComments() { 
     return showComments; 
    } 
    public void setShowComments(boolean showComments) { 
     this.showComments = showComments; 
    } 

    /*other getters and setters*/ 
} 
+0

今後のJSFに関するアドバイス:main()メソッドを備えたプレーンなバニラJavaアプリケーションを使用して問題が明らかにならない限り、[java]タグは使用しないでください。 [java]ユーザーは、JSFの質問を理解できる定義ではなく、JSFの質問をリストに表示することに関心のある定義でもありません。 – BalusC

答えて

0

BalusCは正しいです。それをチェックアウトしてくださいhttps://github.com/simasch/46756639

あなたのコードは

action="#{img.setShowComments(true)}" 

を働いている私は、GitHubの上でデモアプリケーションを作成しました。

+0

答えとしてやる前にあなた自身を試してください。 – BalusC

+0

良いコメントとEuleosの質問に対する解決策は何ですか? –

関連する問題