저는 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*/
}
향후 JSF에 대한 조언 : main() 메소드가있는 일반 바닐라 Java 응용 프로그램을 사용하여 문제가 시연되지 않는 한 [java] 태그를 사용하지 마십시오. [java] 사용자는 JSF 질문을 이해할 수있는 정의가 아니며 해당 목록에서 JSF 질문을 보는 데 관심이있는 정의도 아닙니다. – BalusC