我想要有一个和一个图形图像。默认情况下,不显示图形图像。如果用户单击按钮,则显示图形图像(呈现=真)。
我可以这样做,但我必须刷新页面才能看到显示的图形图像。
我认为我必须使用ajax组件直接在单击按钮时进行显示,但我没有设法使用它。你能指导我吗?
xhtml:
<h:body>
<h:form>
<p:commandButton value="Prendre la photo générique"
id="boutonPhotoGenerique" icon="ui-icon-image"
action="#{defaultCommandBean.affichePhotoGenerique}">
<p:graphicImage id="photoGenerique"
rendered="#{defaultCommandBean.rendered}"
value="photos/photo_generique.jpg" />
</p:commandButton>
</h:form>
</h:body>
Managed Bean:
@ManagedBean(name = "defaultCommandBean")
@SessionScoped
public class DefaultCommandBean {
private boolean rendered;
public boolean isRendered() {
return rendered;
}
public void setRendered(boolean rendered) {
this.rendered = rendered;
}
public void affichePhotoGenerique() {
rendered = true;
}
}
答案 0 :(得分:2)
我发现了问题:我使用面板组件包围了我的graphicImage组件,其中id =“panel”;并将我的更新属性修改为update =“panel”。现在,图片直接显示。
答案 1 :(得分:0)
将graphicImage
放在commandButton
之外并按下按钮声明
update = 'photoGenerique'
。像这样:
<h:form>
<p:commandButton value="Prendre la photo générique" update="photoGenerique"
id="boutonPhotoGenerique" icon="ui-icon-image"
actionListener="#{defaultCommandBean.affichePhotoGenerique}">
</p:commandButton>
<p:graphicImage id="photoGenerique"
rendered="#{defaultCommandBean.rendered}"
value="photos/photo_generique.jpg" />
</h:form>