2017-10-15 8 views
0

저는 JSF를 처음 사용합니다. 나는 bean으로부터 이미지리스트를 얻는 c : foreach 엘리먼트를 가지고있다. 각 이미지 목록 요소는 일시적 부울 필드가있는 나 (me)로 만든 Image 객체입니다. 이 필드는 처음에는 거짓입니다. 부울 값을 표시하는 outputText도 있습니다. 이제 단추를 클릭하면 부울 필드가 true로 설정되고 outputText는 새 부울 값으로 새로 고쳐지기를 원합니다. 시도했지만 부울 값은 항상 false입니다. 가능한가요? 부울 필드를 설정 한 이미지가 부울 필드를 가져 오는 것과 같지 않거나 foreach의 이미지 요소가 업데이트되지 않은 것처럼 보입니다.내부 : JPA 엔티티의 foreach set transient 필드를 가져 와서 검색하십시오.

JSF 코드 : JPA 주석과

<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 이미지 클래스 :

@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는 권리입니다.

귀하의 코드가

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

를 작동하고 나는 GitHub의에서 데모 애플리케이션을 만들어 : https://github.com/simasch/46756639

그것을 확인하시기 바랍니다.

+0

답변으로 해보기 전에 직접 시도해보십시오. – BalusC

+0

좋은 의견과 Euleos 질문에 대한 해결책은 무엇입니까? –