我是JSF的新手。我有一個c:foreach元素從bean獲取圖像列表。每個圖像列表元素都是一個Image對象(由我創建),它具有一個臨時布爾字段。該字段最初是錯誤的。我也有一個outputText來顯示布爾值。現在我想要點擊一個按鈕時,boolean字段被設置爲true,並且outputText用新的布爾值刷新。我試過,但布爾值總是假。這可能嗎?它看起來像我設置布爾字段的圖像不一樣,我得到布爾字段,或者foreach中的圖像元素沒有更新。裏面c:foreach設置JPA實體的瞬態字段並檢索它
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圖像類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*/
}
對未來的JSF問題的建議:只要問題不能用簡單的使用main()方法的vanilla Java應用程序來證明,請不要使用[java]標記。 [java]用戶不是每個定義都能夠理解JSF問題,也不是每個定義都有興趣在他們的列表中看到JSF問題。 – BalusC