JSF に関してよくある質問と回答:
JMS からの面接で最もよく聞かれる質問を集めたもの。
JavaServer Faces とは何ですか?
JavaServer Faces (JSF) は、Web アプリケーション用のユーザー インターフェイス (UI) プラットフォームです。ジャワ。これは、Java アプリケーション サーバー上で実行され、そのインターフェイスをターゲット クライアントにレンダリングするアプリケーションの作成と保守の負担を大幅に軽減するように設計されています。 JSF は、次のような使いやすさを提供します。
- 再利用可能な UI コンポーネントのセットから UI を簡単に構築できます
- アプリケーション データとユーザー インターフェイスの移行を簡素化
- サーバーリクエスト間のインターフェース状態の管理に役立ちます
- クライアント生成イベントをサーバー側アプリケーション コードに接続するためのシンプルなモデルを提供します。
- カスタム ユーザー インターフェイス コンポーネントを簡単に構築して再利用できるようにします。
- 最も重要なことは、JSF は、エンタープライズ開発者からシステム プログラマに至るまで、さまざまなタイプの開発者が利用できる開発者エクスペリエンスを提供するツールで活用できるように設計された標準を確立していることです。
「エンタープライズ開発者」は、手続き型コードとビジネス ロジックの作成に熟練している個人として特徴付けられますが、必ずしもオブジェクト指向プログラミングに熟練しているわけではありません。 「システム プログラマ」は、抽象化や再利用のための設計など、オブジェクト指向の基本を理解しています。企業の開発者は通常、開発ツールに依存しますが、システム プログラマはコードを記述するためのツールをテキスト エディタとして定義する場合があります。したがって、JSF は機械加工されるように設計されていますが、システム プログラマーにとって必要な場合があるように、ツールの外部で使用できるようにフレームワーク モデルと API プログラミングも公開しています。
OutputLink の URL コンテキスト パスを追加するにはどうすればよいですか?
現在の JSF 実装では、定義されたパスが「/」で始まる場合、outputLink のコンテキスト パスは追加されません。この問題を解決するには、outputLink 値属性の先頭に # {}facesContext.externalContext.requestContextPath プレフィックスを使用します。例えば:
<h: valeur outputLink = « # {facesContext.externalContext.requestContextPath} / myPage.faces « >
現在のページの URL を取得するにはどうすればよいですか?
次のように、FacesContext 経由で HTTP リクエスト オブジェクトへの参照を取得できます。
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest リクエスト = (HttpServletRequest) fc.getExternalContext () getRequest ().;
次に、通常のクエリ メソッドを使用してパス情報を取得します。
さもないと、。 context.getViewRoot () getViewId ();
JSP の名前を返します (JSF ビュー ID は基本的に単なる JSP パス名です)。
セッションを終了するにはどうすればよいですか?
セッションを終了するには、メソッドを使用できますsession.invalidate()。
JSP ページから web.xml 初期化パラメータにアクセスするにはどうすればよいですか?
これは、ExternalContext getInitParameter メソッドを使用して取得できます。たとえば、次のような場合です。
<context-param><param-name>接続文字列</ param-name>
<param-value>jdbc: オラクル: シン: スコット / タイガー @ カートマン: 1521: O901DB</ param-value>
</ context-param>
JSFページの実際のURLを非表示にする方法は?
必要なことを行う独自のバージョンの javax.faces.ViewHandler を実装する必要があります。次に、faces-config.xml に独自のビュー マネージャーを登録します。
ここでは単純な抽象 ViewHandler ですが、その 3 つの抽象メソッドを拡張して実装できます。ここでオーバーライドする抽象メソッドは、ファイル システム上の URI と物理パス間の変換を行う場所です。この情報は、通常の方法で処理するために、JSF のデフォルトの ViewHandler にそのまま渡されます。たとえば、これらのメソッドをオーバーライドして、(例のように) インバウンド ID ビューにファイル拡張子を追加および削除し、拡張子ビュー URI を減らすことができます。