1

私は JSF + Spring プロジェクトを使用しています。Spring manged Bean は ViewScoped です

私の保存状態はクライアントです。

<context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>

以下は私のBeanで、BeanとpostconstructメソッドのコンストラクターがTomcatの起動時にのみ呼び出されることがわかりました。SpringマネージドBeanの下で毎回ページの更新時にメソッドを呼び出したい場合、それは実際の動作ですか?

@Component
@ViewScoped
public class DataTableBean implements Serializable{

public DataTableBean() {
        super();
}

@PostConstruct
    private void loadDataData(){
        System.out.println("Post constructing");
    }
}
4

1 に答える 1

3

Bean を Spring で管理するための@ComponentSpring 固有のアノテーションです。これ@ViewScopedは、JSF マネージド Bean のスコープを指定するための JSF 固有のアノテーション@ManagedBeanです。JSF 固有のスコープ アノテーションは、Spring マネージド Bean ではまったく機能しません。代わりに、Spring 固有の@Scopeアノテーションを使用する必要があります。

したがって、JSF で Bean を管理するだけです。

@ManagedBean
@ViewScoped

または、Spring の「ビュー」スコープを自作します (つまり、これは Spring で使用可能なデフォルトのスコープの 1 つではありません)。

@Component
@Scope("view")
于 2012-05-18T12:54:37.067 に答える