[解決済み] jQueryやAngularJSなどのJavaScriptライブラリでUIを実現できるJSFの必要性とは?
質問
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 .
こちらもご覧ください。
関連
-
[解決済み] PL/SQL Developerで行番号を取得する方法は?
-
[解決済み] GUIとUIの違いは何ですか?
-
[解決済み】JSF、Servlet、JSPの違いは何ですか?
-
[解決済み】関数型GUIプログラミングは可能か?[クローズド]
-
[解決済み】保存アイコン。まだフロッピーディスク?[クローズド]
-
[解決済み】JSFリソースライブラリは何のためにあり、どのように使用すべきですか?
-
[解決済み】なぜ一部の開発者にとって優れたUIデザインは難しいのか?[クローズド]
-
[解決済み] Flutterでテキストを垂直方向と水平方向の中央に配置する方法は?
-
[解決済み] エラーメッセージをユーザーに読ませるには?[クローズド]
-
[解決済み] ラウンド・スペシフィック・コーナー SwiftUI
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] プログラムによって色を明るくする
-
[解決済み] どのように公開TMPTextユニティC#を作るのですか?
-
[解決済み】JSF、Servlet、JSPの違いは何ですか?
-
[解決済み】関数型GUIプログラミングは可能か?[クローズド]
-
[解決済み】保存アイコン。まだフロッピーディスク?[クローズド]
-
[解決済み】UI用語集:Logon vs Login [終了しました]
-
[解決済み】ASCIIスピナーをもっとかっこよく?[クローズド]
-
[解決済み】Java Server Faces 2.0の主なデメリットは何ですか?
-
[解決済み】Java / Jakarta EEのWeb開発、何から始めてどんなスキルが必要ですか?[終了しました]
-
[解決済み] エラーメッセージをユーザーに読ませるには?[クローズド]