3

JBoss Wildfly 8.2.0 を使用<f:viewParam>していますが、ページで 2 回呼び出されていることに気付きました。

  • 初めて、URLに指定されたパラメーターを使用してページにアクセスしたときです
  • 2 回目は、そのページから作成した最初の AJAX リクエストです。

豆:

@Named
@javax.faces.view.ViewScoped
public class MessageBean implements Serializable {

    private String message;
    private int count;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        System.out.println("setting message");
        this.message = message;
    }

    public void increment() {
        this.count++;
    }

    public int getCount() {
        return count;
    }
}

XHTML:

<!DOCTYPE html ...>
<html ...>
    <f:metadata>
        <f:viewParam name="message" value="#{messageBean.message}" />
    </f:metadata>
    <h:head>
        <title>Message</title>
    </h:head>
    <h:body>
        <h:form>
            <h:outputText value="#{messageBean.message} (#{messageBean.count} time(s))" />
            <h:commandButton value="increment">
                <f:ajax render="@form" listener="#{messageBean.increment}" />
            </h:commandButton>
        </h:form>
    </h:body>
</html>

<f:viewParam>AJAX リクエストが をトリガーする理由と、最初のリクエストのみをトリガーする理由がわかりません。

4

1 に答える 1

3

これは、 のステートフルネスが原因です<f:viewParam>

JSF ユーティリティ ライブラリOmniFacesは、<o:viewParam>.

以下も参照してください。

于 2015-04-30T09:54:05.063 に答える