1

JSF 2.0を掘り下げ始めたところです。これは、豊富なユーザーインターフェイスを備えたWebアプリケーションを構築するための、固定されたビューのセットを備えたコンポーネント中心のアーキテクチャです。しかし、JSF 2.0は、動的なページ作成と多くのページを備えたWebサイトにも使用する必要がありますか?例:

私は国の不完全なデータベースとそれらの国に関するさまざまな年の統計を持っています。国のセットと利用可能な統計は毎日変更される可能性があります。次のようなURLを提供したい:

WEB-INF / pages / country /germany.xhtmlや/country/germany.xhtmlなど、国ごとにビューを作成することは意味がありません。与えられたURLの集中的な処理に基づいた動的なページ作成が本当に必要だと思います。しかし、JSF 2.0はそのようなユースケース向けに構築されていますか?

Velocityのようなテンプレートエンジンを組み合わせて、昔ながらのサーブレットに切り替えることを本当に考えています。JSF 2.0に関する私の知識は非常に限られており、それを使用すべきかどうかわかりません。

4

1 に答える 1

1

最も単純な方法では、のURLパターンにマップされ、すべてのリクエストを単一のJSFビューに転送するフィルターを作成できます。/country/*

@WebFilter("/country/*")
public class CountryFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        req.getRequestDispatcher("/WEB-INF/country.xhtml").forward(req, res);
    }

    // ...
}

に関連付けられたマネージドBeanの(ポスト)コンストラクターで、country.xhtml次のように元のリクエストURIを取得できます。

String originalUri = (String) externalContext.getRequestMap().get(RequestDispatcher.FORWARD_REQUEST_URI);
// ...

これをBean/ビューでさらに使用して、目的のHTML出力を動的に事前入力/レンダリングすることができます。

さらなる抽象化とよりきめ細かい構成については、PrettyFacesを見てみることをお勧めします。これは、基本的に同じことを裏で行っています。

于 2012-04-23T16:47:21.197 に答える