如何根据按钮触发的布尔状态变量显示图像?我不希望整个页面重新加载,只是那个特定的图像。
Facelets页面:
</h:form>
<h:commandButton value="test" action="#{bean.toggleStatus}">
<f:ajax render="image"/>
</h:commandButton>
<h:graphicImage id="image" value="status.gif" rendered="#{bean.status}"/>
</h:form>
支持课程:
class Bean {
private boolean status = false;
public void toggleStatus() {
status = true;
}
//getter, setter
}
知道这里可能有什么问题吗?
答案 0 :(得分:4)
您无法ajax更新未呈现给HTML端的HTML元素。将其包装在一个始终呈现的组件中,然后更新它。
E.g。
<h:form>
<h:commandButton value="test" action="#{bean.toggleStatus}">
<f:ajax render="image"/>
</h:commandButton>
<h:panelGroup id="image">
<h:graphicImage value="status.gif" rendered="#{bean.status}"/>
</h:panelGroup>
</h:form>