過去に Java および JSP プログラミングを行ったことがありますが、Java Server Faces は初めてなので、JSF 開発のベスト プラクティス セットがあるかどうか知りたいと思っています。
8 に答える
faceletsの使用を検討してください。これにより、JSF 開発の最悪の部分が大幅に簡素化されます。私は現在、Facelets を使用せずに CMS ベースの JSF プロジェクトを行っています (それを使用してプロジェクトを行った後)、左腕が欠けているように感じます....
契約者に 3 か月分の料金を支払うことになるとしても、JSF の経験豊富な人に JSF での最初のプロジェクトを率いてもらうことを強くお勧めします。JSF のアプローチは、JSP とは大きく異なります。問題に取り組み、解決する方法は大きく異なります。
ライブラリ
次のライブラリを検討してください。
建築
MVCを受け入れるには、これが何を意味するのかを知るだけでなく、幅広く使用する必要があります。
コントローラーをビューに関連付けるには、主に 2 つのパターンがあります。
ドット ネット スタイル、ビューごとに 1 つの要求コントローラー
すべての最上位ページには、要求スコープのコントローラー (Bean) があり、ページのすべての検証とアクションでこのクラスが使用されます。モデルのフィルタリングと順序付けにも使用されます。モデルは、バックエンド (EJB または永続レイヤー) との対話を処理するいくつかのセッション レベル コントローラーに格納されます。これらのセッション コントローラーはビジネス ロジックを実装する必要があり、JSF、HTML、またはプレゼンテーション テクノロジの知識はありません。
コントローラーはセッションレベル
データ モデルに基づいてコントローラーを設計し、それらを互いに入れ子にします。(この投稿は長くなりすぎているので、これらの基本事項については説明しません)。
必要な知識
みんな:
少なくとも 1 人:
- カスタム コンポーネントの作成
- JSF の制限 (戻るボタン、ランダム ナビゲーションなど)
- サードパーティのライブラリをデバッグします (少なくとも 1 人は、デバッガを分割して JSF の実装に踏み込むことに慣れている必要があります (MyFaces のようなオープン ソースの実装が最も簡単です))。
いくつかのヒント: JSF 要求のライフサイクルと、さまざまなコードがそのライフサイクルのどこに収まるかを理解してください。特に、検証エラーがある場合にモデル値が更新されない理由を見つけてください。
タグ ライブラリを選択し、それを使い続けます。時間をかけてニーズを判断し、さまざまなライブラリのプロトタイプを作成してください。異なるタグライブラリを混在させると、メンタルヘルスに深刻な害を及ぼす可能性があります。
- フェイスレットへの投票を追加します。私は最近、ファセットを使用するようにプロジェクトをアップグレードしました。これにより、jsfのいくつかの大きな問題が解決されます。特に、すぐに使用できる適切なテンプレートシステムが提供され、「逐語的」にラップすることなく、適切なときに標準のhtmlを使用できるようになります。 -タグ。
- RestFacesは、多くの人が不満を言うget/post問題の解決策です。また、十分に文書化されており、使いやすいです。
- 多くのtaglibには使用しないでください。アップグレードするとき、それは仕事を非常に難しくします。
- SEAMはJSFのベストプラクティスの多くを収集していますが、私はまだ使用していないので、実際にはお勧めできません。ぜひご覧になることをお勧めします。
私は JSf の IBM 実装を使用しており、いくつかのコメントがあります。これは悪い方法ではありませんが、IBM の「生き方」にコミットする必要があります。彼らは、JSF 標準を拡張する独自のタグ ライブラリを作成しました。Rational Application Developer (RAD) (それほど頻繁には更新されない) の内部にとどまることができれば、統合は時々バグがありますが、全体的にはまともです。また、WebSphere との統合も非常に優れています。あなたの雇用主が IBM とゴルフをしているのでない限り、私はできるだけ平凡なままでいるほうがよいと思います。
興味深い記事を見つけることができる次のリンクで確認できます
クロス フィールド/フォーム レベルの検証の「ベスト プラクティス」についてはまだ知りません。
つまり、JSF 検証は現在、単一フィールドの検証に向けられています。IMO複雑なクロスフィールド/フォームレベルの検証を見ると、見苦しくなります。
古いが、まだ正確に見える 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 を使用することをお勧めします。ただし、必要に応じて、使いやすく、十分なコンポーネントを備えたプライムフェイスを使用してください。