質問
過去に Java および JSP プログラミングを行ったことがありますが、Java Server Faces は初めてなので、JSF 開発のベスト プラクティスがあるかどうか知りたいと思っています。
解決
いくつかのヒント:JSFリクエストを理解する ライフサイクル さまざまなコードがその中に収まる場所。特に、検証エラーがある場合にモデルの値が更新されない理由を調べてください。
タグ ライブラリを選択し、それを使い続けます。時間をかけてニーズを判断し、さまざまなライブラリのプロトタイプを作成してください。異なるタグリブを混合すると、精神的健康に重大な害を及ぼす可能性があります。
他のヒント
使用を検討してください ファセット- JSF 開発の最悪の部分を大幅に簡素化します。現在、(フェイスレットを使用してプロジェクトを実行した後) ファセットなしで CMS ベースの JSF プロジェクトを実行していますが、左腕が欠けているように感じます...
たとえ請負業者に 3 か月分の料金を支払うことになっても、JSF の経験がある人に JSF での最初のプロジェクトを主導してもらうことを強くお勧めします。JSF のアプローチは JSP とは大きく異なります。問題にアプローチして解決する方法は大きく異なります。
図書館
次のライブラリを考慮してください。
建築
抱きしめる MVC これが何を意味するのかを知るだけでなく、広く使用する必要があります。
コントローラーをビューに関連付けるには、主に 2 つのパターンがあります。
Dot Net スタイル、ビューごとに 1 つのリクエスト コントローラー
すべてのトップレベル ページには、リクエスト スコープのコントローラー (Bean) があり、ページのすべての検証とアクションでこのクラスが使用されます。モデルのフィルタリングと順序付けにも使用されます。モデルは、バックエンド (EJB、または永続層) との通信を処理するいくつかのセッション レベル コントローラーに保存されます。これらのセッション コントローラーはビジネス ロジックを実装する必要があり、JSF、HTML、またはプレゼンテーション テクノロジについての知識はありません。
コントローラーはセッションレベルです
データ モデルに基づいてコントローラーを設計し、相互にネストします。(この記事は長くなるので、詳細には触れません)。
必要な知識
みんな:
少なくとも 1 人:
- カスタムコンポーネントの作成
- JSFへの制限(バックボタン、ランダムナビゲーションなど)
- デバッグサードパーティライブラリ(少なくとも1人はデバッガーを破り、JSFの実装に踏み込む必要があります(myfacesなどのオープンソースの実装で最も簡単です))
- facelets に投票してください。私は最近、facelets を使用するようにプロジェクトをアップグレードしました。これにより、jsf に関するいくつかの大きな問題が解決され、特に、箱から出してすぐに適切なテンプレート システムが提供され、必要に応じて標準 html を「逐語的に」ラップすることなく使用できるようになります。 -タグ。
- RestFaces は、多くの人が不満を抱いている get/post の問題に対する解決策です。ドキュメントも充実していて使いやすいです。
- タグリブを多用しないでください。アップグレードするときの作業が非常に難しくなります。
- SEAM には JSF のベスト プラクティスが多数集められていますが、私はまだ使用したことがないので、あまりお勧めできません。一度見てみることをお勧めします。
私は IBM の JSf 実装を使用しており、いくつかコメントがあります。それは悪い方法ではありませんが、IBM の「生き方」にコミットする必要があります。彼らは、JSF 標準を拡張する独自のタグ ライブラリを作成しました。Rational Application Developer (RAD) (それほど頻繁には更新されません) 内に留まることができれば、統合にはバグがあることもありますが、全体的には適切です。また、WebSphere との統合も非常に優れています。あなたの雇用主がIBMとゴルフをするのでなければ、できる限り普通のままの方が良いと思います。
私はクロスフィールド/フォームレベル検証の「ベストプラクティス」をまだ知りません。
つまり、JSF 検証は現在、単一フィールド検証を対象としています。私の意見では、複雑なフィールド/フォームレベルの検証を見ると醜くなります。
古いですが、私にはまだ正確に見えますhttp://weblogs.java.net/blog/johnreynolds/archive/2004/07/improve_jsf_by_1.html
http://www.jroller.com/robwilliams/entry/jsf_multi_field_validation_not
興味深い記事が見つかる次のリンクからチェックしてください。
適切なコンポーネントライブラリを選択してください。 richfaces は使用しないでください。jsf を使用せず、spring mvc、ビューの jquery、残りのアーキテクチャの json を使用することをお勧めします。ただし、どうしても必要な場合は、Primefaces を使用してください。使いやすく、十分なコンポーネントが備わっています。