1

Mojarra 2.2.12 を使用しています。@ViewScoped @ManagedBeanビューは終了していませんが、ページの読み込み時に a がすぐに破棄される場合があります。この問題は、以下の のみで再現可能です<h:body>

<h:outputText value="#{testBean.value}" />
<h:link outcome="other" includeViewParams="true">link</h:link>

other、同じビューではなく、別のビューを参照する必要があります。<f:viewParam>問題を再現する必要はありません。

そして以下の豆:

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class TestBean implements Serializable {

    @PostConstruct
    public void init() {
        System.out.println("@PostConstruct on " + this);
    }

    @PreDestroy
    public void clear() {
        System.out.println("@PreDestroy on " + this);
    }

    public String getValue() {
        return "test";
    }

}

属性を削除includeViewParams="true"すると、Bean はすぐに破棄されませincludeViewParams="true"ん。なぜこの動作が発生するのですか?

4

1 に答える 1