0

私はセッションを使用してBeanを管理しましたがmanagedbean-scope、現在はバッキングBeanのコンストラクターで検証を行っていますが、Beanのスコープはsessionユーザーが最初にuploadページにアクセスしようとしたときであるため、管理対象Beanのコンストラクターを呼び出し、ユーザーがアップロードページにアクセスできるかどうか。

したがって、最初の試行でコンストラクターを呼び出していると、uploadページがユーザーに利用できないことを示す検証エラーメッセージが表示されますが、他のタブに移動して[uploadページメニュー]タブに戻ると、そのページが表示されます。これを変更するにはどうすればよいですか?すべてのpageLoadで検証がチェックされるように動作します。また、ページに関しては使用できませんmanaged-scopedrequest同じセッション内の異なるリクエスト間でいくつかの情報を維持する必要があります。

コードは次のとおりです。

バッキングBeanコンストラクター:

public Upload()
{
    ValidationStatus authorizeBean = validateUSER(user);                
}

Faces-config.xml

<managed-bean>
        <managed-bean-name>fileUpload</managed-bean-name>
        <managed-bean-class>Upload</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

何かご意見は?

4

2 に答える 2

1

Bean はこれを行うには間違った場所だと思います。ページ アクセスを処理するには、サーブレット フィルターまたは JSF フェーズ リスナーのいずれかを使用します。

サーブレット フィルターを使用してページ アクセスを制御する例を次に示します。

于 2012-10-16T19:49:10.667 に答える
-2

使用する@PostConstruct

参考はこちら

JSFバッキング Beanで

@PostConstruct
public void initIt(){
}

@PreDestroy
public void cleanUp(){
}
于 2012-10-16T20:21:09.823 に答える