1. ホーム
  2. user-interface

[解決済み] jQueryやAngularJSなどのJavaScriptライブラリでUIを実現できるJSFの必要性とは?

2022-08-31 04:25:37

質問

JSFはUIフレームワークであり、いくつかのUIコンポーネントを提供すると書かれていました。しかし、それはjQueryUI、AngularJS、React、Vue.js、ExtJS、あるいは単なるHTML、CSS、JavaScriptから利用できる多くのコンポーネントよりどのように優れているか、または異なっていますか。

なぜJSFを学ばなければならないのでしょうか?

どのように解決するのですか?

JSFをプレーンなJSP/サーブレット/HTML/CSS/JSにすることは、jQueryをプレーンなJSにするのと同じことです:より少ないコードでより多くのことができます。例えば PrimeFaces (jQuery + jQuery UIベース)を例にとると、その ショーケース を参照し、完全なコード例を見てください。 ブーツフェイス (jQuery + Bootstrap UI ベース) にも ショーケース に完全なコード例があります。これらの例をよく見てみると、基本的にはモデルとして単純な Javabean クラスが必要で、ビューとして XHTML ファイルが必要であることがわかります。

JSFをHTML/CSS/JSの置き換えとしてではなく、サーバーサイドの部分(特にJSP/サーブレット)も考慮に入れる必要があることに注意してください。JSFは、HTTPリクエストパラメーターを収集し、それらを変換/検証し、モデル値を更新し、ビジネス上のことを行うために適切なJavaメソッドを実行し、HTML/CSS/JS定型コードを生成するすべての定型文の必要性を除去します。JSFでは、基本的に、ビュー定義としてXHTMLページ、モデル定義としてJavabeanクラスで終わります。これは、非常に開発をスピードアップします。

すべてのコンポーネントベースのWeb MVCフレームワークと同様に、JSFでは、レンダリングされたHTML/CSS/JSに対するきめ細かい制御があまりありません。サーバー側のJSFビューの状態も考慮しなければならないので、カスタムJSコードを追加するのはそれほど簡単ではありません(たとえば、JS側で無効なボタンを有効にしても、JSF側でそのボタンを有効にできません。これは、逆に大きなセキュリティ上の利点となります)。もし、それが大きな障害になるのであれば、むしろ、以下のようなアクションベースのWeb MVCフレームワークを探してみてください。 Spring MVC . あなたは、すべてのHTML/CSS/JSコード(とXSS、CSRF、DOM操作に対する予防策!)を書かなければならないことだけを考慮すればよいのです。 自身 . また、FaceletsからJSPにフォールバックした場合、高度なテンプレート機能も失います。

一方、大きな JSP/Servlet/HTML/CSS/JS/jQuery ベースの Web サイトを持っていて、繰り返される JSP/Servlet/HTML/CSS/JS/jQuery ボイラープレート コードを再利用可能なコンポーネントにリファクタリングしたい場合、解決策の 1 つは JSF でしょう。カスタムテンプレート、タグファイル、コンポーネントは、これを支援することができます。その観点から、JSFはJSP/サーブレット/HTML/CSS/JS/jQueryの上に立っています(そしてそれは、JSFに飛び込む前にそれらの基本を理解することがかなり重要である理由でもあります)。

実際のキックオフJSFベースのプロジェクトは、ここで見つけることができます。 Java EEキックオフ・アプリケーション . このプロジェクトには、次のものが含まれていることがわかります。 JSF と同じように HTML5 , CSS3 jQuery .

こちらもご覧ください。