0

私は学校のためのプロジェクトをやっています。JSFとPrimefacesを使用しています。ただし、JSFプロジェクトでHTML5ファイルが呼び出されたときにサーブレットフィルタを使用して認証を確認します。JSFはHTML5をサポートしていないためです。プロジェクトにはHTML5ページがあります。このページにアクセスするにはログインする必要があります。ただし、ログインせずにHTML5ファイルを呼び出すと、ポップアップ、メッセージ、またはうなり声を開くことができません。

LoginFilterでFacesMessageを使用できますか?

コード:

@WebFilter(urlPatterns = {  "/design.html" , "/demodesign.html" } )
public class LoginFilter implements Filter{
@Override
public void doFilter(ServletRequest req, ServletResponse res,
        FilterChain chain) throws IOException, ServletException {

    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    HttpSession session = request.getSession(false);

    UserBean userBean = (UserBean) ((session != null) ? session.getAttribute("userBean") : null);
    User member = null;

    if ( !(userBean == null) )
        member = userBean.getMember();

    if (member != null) {
        chain.doFilter(request, response);
    } else {
        response.sendRedirect(welcomeURL);
    }

}
 }
4

1 に答える 1

2

JSFはHTML5をサポートしていないため

これはまったくナンセンスです。JSFは単なるHTMLコードプロデューサーです。それは問題なく合法的なHTML5コードを生成することができます。<canvas>JSFページのように、「プレーンバニラ」HTML5要素を配置するだけです。そのままで出力します。JSFがさらにできることは<my:canvas>、送信された値がBeanプロパティとしてすぐに更新され、追加の作業なしで検証を実行してリスナーをアタッチできるように、カスタム/複合コンポーネントでラップすることです。

これらのHTMLファイルの名前をに変更し、にマッピング.xhtmlを追加/使用するだけです。このようにして、これらのいわゆるHTML5ページでJSFコンポーネントを使用できるようになります。*.xhtmlFacesServlet

参照:

于 2012-12-24T12:21:03.077 に答える