java-JSF

画面に表示した項目が再描画の際に勝手に並び変わる

[事象] 初期描画で表示する時には想定した通りコンポーネントが並んで表示されるのに、 再描画以降では何故かコンポーネントが意図しない並び順序で表示されてしまい画面が崩れてしまう。[原因] 並び替えが発生している箇所を調査すると、JSFやPrimeFacesの…

P176 フェーズリスナ

[フェーズID一覧] RESTORE_VIEW APPLY_REQUEST_VALUES PROCESS_VALIDATIONS UPDATE_MODEL_VALUES INVOKE_APPLICATION RENDER_RESPONSE ANY_PHASE・ID自体は、PhaseIdクラスに記述されている。 ・ANY_PHASEは全てのフェーズを表す。 [フェーズリスナー登録方…

P169 ブックマーカビリティタグ

[タグの種類] f:viewParam URLのクエリ文字列をマネージドビーンに設定するタグf:viewAction 画面を表示する前に処理を実行するタグ[特記事項] ・使用するには、f:metadataタグ内で利用しなければならない。 ・当タグを利用すると、初期描画時は通常1と6しか…

P135 パススルーアトリビュートとパススルーエレメント

パススルーアトリビュート・・・JSFからJSFに対応していない属性を出力するための仕組み パススルーエレメント・・・HTMLタグをそのままJSFのコンポーネントに変換させる仕組みどちらもJavaEE7(JSF2.2)の仕様なので、JavaEEサーバが対応していないと無視され…

P132 ui:insertタグ内部の記述

[テンプレート側] (中略) 上記の様なXHTMLがあった場合、テンプレートファイルにて置き換え対象とするのは、ui:insertタグ部分全体である。 では、その内部の記述は何のためにあるかというと、テンプレート部分が置き換えられなかった場合に利用する内容であ…

P112 カスタマイズバリデータ

@Constraint(validateBy = {hogeValidator.class}) ConstraintValidator<T, V> T:アノテーションの型 V:値の型 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田益嗣,羽生田恒永,梶浦美咲,小田圭二 出版社/</t,>…

P110 ビーンバリデーションのエラーメッセージ変更方法

1.アノテーションにmessage属性を付ける @NotNull(message="ユーザーIDは必須です" 2.プロパティファイルを利用する ValidationMessages.propertiesというファイル名でクラスパスのデフォルトパッケージに配置する。 Java EE 7徹底入門 標準Javaフレームワー…

P109 空文字の取扱い

JSFのデフォルトでは画面の入力が何もない場合は空文字としてコンポーネントに値が渡る。 web.xmlに下記の設定を加える事で、空文字の値をnullに変更する事ができる。 [web.xml] <context-param> <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITED_VALUES_AS_NULL </param-name> <param-value>true</param-value> </context-param> Java E…

P105 ビーンバリデーション

(ビーンバリデーションの記述例) @NotNull private String hoge; (ビーンバリデーションの利用例) <h:inputText id="hoge" value="#{account.hoge}" /> <h:message for="hoge"> [ビーンバリデーションの一覧] evernote側 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田益嗣,</h:message></h:inputtext>…

P103 JSFのカスタムバリデータ

[カスタムバリデータを作成する方法] ・カスタムバリデータメソッドを作成する ・カスタムバリデータクラスを作成する [カスタムバリデータメソッドで対応] マネージドビーンにメソッドを作成する。 (カスタムバリデートメソッド作成例) public void validat…

p95 暗黙オブジェクト

[EL式の記述例] #{header['user-agent']} [暗黙オブジェクト一覧] evernote側 [論理演算子] && and || or ! not [空演算子] empty a aがnullまたは空文字の場合にtrueを返す [三項演算子] a ? b : c aがtrueの場合はb、falseの場合はcを返す [メソッドの呼び…

P90 h:dataTableタグ

h:dataTableタグもh:panelGridタグと同様にJSF1.2の流れが強い。また、簡単なテーブル表示であれば問題ないが、複雑なテーブルを作成する際に小回りが利かない。 そのため、通常のHTMLとui-repeatタグを組み合わせる方法を本書では記述している。 Java EE 7…

P100 JSFバリデージョンとBeanバリデーション

[JSFバリデーション]プレゼンテーション層で値のチェックを行う。デフォルトメッセージは冗長で、日本語も不自然である。メッセージを変更するには、チェック対象のコンポーネント側にvalidatorMessage属性を指定する。一律変更を行う場合は、faces-config.x…

P53 画面のリダイレクト

outcome値の後に?faces-redirect=trueという文字列を付加すればリダイレクトを使用して画面遷移できる。 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田益嗣,羽生田恒永,梶浦美咲,小田圭二 出版社/…

P58 ポストバック

最初のアクセスの場合は、1と6しか処理しないが、再度同じ画面で処理する場合は1~6を処理する。再度その画面を処理することをポストバックと呼ぶ。 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田…

P53 フラッシュスコープ

1画面遷移の間だけ値を保持する事ができるスコープ 多用すると処理の範囲やスコープが分かりにくくなるので、出来るだけ使わないこと。リダイレクト後のメッセージ表示などの用途位に留めること。 [ex.] facesContext.getExternalContext().getFlash().put("…