2011-09-13 14 views
1

私はJavaベースのWebプログラミングを初めて使い、基礎からJSFを学びたいと思っています。私はJSFがMVCソリューション全体として説明していると聞いています.Faceletsは、MVCアーキテクチャの「View」コンポーネントを構成する純粋なXMLテクノロジーです。利用可能なJSF MVCコンポーネント

だから、どんなベターでも知らないと、それは私に尋ねます。各コンポーネントにはどのような選択肢や選択肢がありますか? 3(Model、View &コントローラ)のそれぞれについて、JSFで動作するツール/ API/libs/technologyが存在します。たとえば、Viewの基本を正しく理解していれば、JSPはFaceletsの(古い/陳腐化した)代替手段です。他のもの?モデルコンポーネントはどうですか?私のオプションは何ですか?コントローラ?

もう一度、JSFの傘の下にあるものをすべて保持することに興味があります。コンポーネントがJSFソリューションの一部として互換性がある場合、私はそれについて聞きたいです!

ありがとうございました!

+0

関連:http://stackoverflow.com/questions/7302402/using-pojo-as-model-in-jsf-and-jpa-project-is-that-right and http://stackoverflow.com/questions/4421839/what-is-the-need-of-jsf-when-ui-can-be-達成-ss-html-javascript-jquery – BalusC

答えて

3

あなたのご理解は正しいと思います。

私は、JSFがコントローラのほとんどの部分を埋めると言います。 JSFと互換性のある他のライブラリもあります。たとえば、JSFと一緒にSpring WebFlowを使用すると、より強力なナビゲーション機能を利用できます。

JSFは、モデルに関してはあまり邪魔になりません。理想的には、ドメインモデルでJSFを使用しているトレースはありません(ただし、JSFは@ManagedBeanなどのオプションで使用できる注釈を提供しています)。つまり、あなたは自由に任意のライブラリを使用することができます。必要に応じてSpring IOCまたはEJBを使用することができます。また、モデル全体を通常の古いJavaオブジェクトでコーディングすることもできます。

つまり、私はJSPが時代遅れではないことを強調したいと思います。 digitaljoelが指摘するように、FaceletsはJSFのビュー技術としてJSPを置き換えましたが、JSPは他のフレームワークではまだ生き生きと健全です。 Faceletsを含むJSFがJSP(他のWebフレームワークと共に)より「良い」という合意はありません。 JSFは業界標準にはなっていません。

JSFを使用してWebアプリケーションを作成することは、デスクトップアプリケーションを作成することに近づきます。なぜなら、それらは要求 - 応答処理の多くを抽象化しているからです。クライアントが要求を行うたびに特定のメソッドが呼び出されるのではなく、各要求が完全に制御されていないライフサイクルを通過します。 HttpServletRequestと直接対話することはお勧めしません。

ウェブのリクエスト/レスポンスの性質を無視すると、リクエストの複雑さが増し、別の成長トレンドと競合します.Javascriptに大きく依存するリッチWebアプリケーションです。ビューロジックの責任はサーバーからブラウザーに移されます。これはシン・HTTP APIに対してAjaxを使用してサーバーと対話します。

JSFは、すべてのことを学び、無視するために必要な最終的なフレームワークではありません。一部のアプリケーションでは正しい選択ですが、すべてではありません。

+0

ありがとうワックスウィング!私の意図したアプリケーションは実際にJSとAJAXで重くなります。 JSFとは異なり、JS/AJAXとうまく機能するJavaフレームワークをお勧めできますか?つまり、ここで純粋なサーブレットを使用しているのでしょうか、それともそのタブーですか? – IAmYourFaja

+0

偉大な答えwaxwing、あなたはいくつかの優れた点を確認します。 JSF対JSPの1つの説明。 JSFのビュー技術としてJSPを使用することは、せいぜいお勧めしません。 Spring MVCのような別のフレームワークでJSPを使用すると、IMOもうまくいきます。 JS/AJAXに関しては、Spring MVCのためにJSFを残した理由の1つは、Spring MVC対JSFのJS/AJAXの容易さです。 – digitaljoel

+0

だから私は、SpringにはMVC WebアプリケーションのWeb層があると仮定していますか?もしそうなら、それは私の最善の策かもしれません。何らかの理由で、私はいつもSpringが純粋なクライアント側だと考えました。 – IAmYourFaja

6

私は驚いています。BalusCは、この痛いほど完全な答えの1つでこれを打つことはありません。私は彼がそれに取り掛かると思っています、そして、彼がそうするとき、私はすぐに私の答えを受け入れていないので、それは素晴らしいだろうので、それのために投票します。その間に、いくつかの考えがあります:

JSFはVCに重点を置いて、完全なMVCスタックを意図しています。 JSP/Faceletsが正しくなっています。簡単に言えば、JSPを使用しないでください。 Faceletsを使用します。これらはJSF 2のデフォルトのビュー技術です。これらはXMLベースであり、JSFライフサイクルとJSPライフサイクルの間の「面白い」対話を傷つけないようにします。

JSFでコントローラの役割を果たすためのJavaクラスとナビゲーションルールを記述します。 JSFマネージドBeanをサービスに使用することもできますし、その目的のためにSpringのような他のフレームワークを使用することもできますが、JSFのコントローラとして使用する特定のクラスを実装します。

モデルについては、いいMVCフレームワークであれば、モデル自体が残っています。モデルがどのビューに属しているかを知らないでください。JSFからWicketからVaadinまでのモデルを使用してWebページに表示し、デスクトップアプリケーションやRESTful JSONベースのモデルでもモデルを使用できます。 API。ここで

は、私はJSF

+0

ありがとうdigitaljoel!あなたの応答からの1つの簡単な質問:私の理解は、豆はMVCの制御面を構成することでした。結局彼らはビジネスロジック(?)を実装するのを助けます。たぶん私はあなたの反応を誤解しているかもしれませんが、豆がMVCのモデル部分を構成しているように思われます。いずれにしても、どちらが当てはまるかを明確にすることはできますか?もう一度ありがとう! – IAmYourFaja

+0

「コンポーネント」と聞くと、私はグラフィカルなフレームワークとUIコンポーネントが重要だと思います.3つはRichFaces、IceFaces、およびPrimefaceです。 (あなたが組み込む非常に完全なセットの外側)。幸運にも、私はJSFを「CRUD」のような他のWebフレームワークよりも多く楽しんでいます。 –

+0

私はちょうど完全に質問を逃しましたが、私は時間と努力をしていましたが、今はかなり広い質問に入っていません。 – BalusC

関連する問題