3

ボタンとグラフィックイメージが欲しいです。デフォルトでは、グラフィックイメージは表示されません。ユーザーがボタンをクリックすると、グラフィック イメージが表示されます (レンダリング = true)。

私はそれを行うことができますが、グラフィックイメージが表示されていることを確認するには、ページを更新する必要があります。

ボタンがクリックされたときに直接表示するには、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>

マネージド 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;
    }
}
4

2 に答える 2

2

私は問題を見つけました:私は id="panel" のパネルコンポーネントで私のグラフィックイメージコンポーネントを囲みました; update 属性を update="panel" に変更しました。これで、画像が直接表示されます。

于 2013-10-13T15:04:47.560 に答える
0

and in ボタン graphicImageの宣言の外側に置きます。このような:commandButtonupdate = '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>
于 2013-10-10T20:41:57.913 に答える