0

RichFacesとjsfを使用するページがあり、Bean内の何かを検証するためにいくつかのjstlコードを追加しました。このコードはセッションがタイムアウトしたときに検証されており、これによりいくつかの例外がトリガーされます。コードは次のとおりです。

<c:if test="#{ViewerController.viewerBean.canCountMessages}" >
    <td>
        <a4j:commandButton value="count" action="#{ViewerController.doCount}" />
    </td>
</c:if>

したがって、このコードは検証され、次の例外がスローされます。

/pages/viewer/index.xhtml @43,67 test="#{ViewerController.viewerBean.canCountMessages}" An error occurred performing resource injection on managed bean ViewerController

セッションが無効なときにc:ifタグが検証されないようにする方法はありますか

注:ViewerControllerクラスはSessionScopedです。

4

1 に答える 1

1

私はこれの回避策を得ることができました、それは同様の問題を抱えている誰かを助けるかもしれません、

さて、私はユーザーログイン後のセッションにいくつかの変数を保存しました、そしてこの変数が次のようなc:ifステートメントに存在するかどうかを照会しました:

Webアプリにユーザーを記録する場合:

 FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("SessionValid",true); 

そして、このメソッドをViewerControllerクラスに追加しました。

boolean isSessionValid(){
    return FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("SessionValid") !=  null ;
}

私のコードは次のようなものです:

<c:if test="#{ViewerController.sessionValid and ViewerController.viewerBean.canCountMessages}" >
    <td>
        <a4j:commandButton value="count" action="#{ViewerController.doCount}" />
    </td>
</c:if>
于 2013-02-19T11:44:10.893 に答える