システム開発で思うところ

Javaで主にシステム開発をしながら思うところをツラツラを綴る。主に自分向けのメモ。EE関連の情報が少なく自分自身がそういう情報があったら良いなぁということで他の人の参考になれば幸い

JSF

JSFの本番環境用設定

JSFの本番環境用設定に関するメモ web.xmlの切り替え 開発環境と本番環境の切り替え https://skill-up-engineering.com/2015/09/05/post-705/ パラメータの説明 Overview of all JSF-related web.xml context parameter names and values - Stack Overflow …

JSFでツールチップ

JSF

vermeer.hatenablog.jp の続きと言うか、ついでに。 やりたいこと エラーメッセージを入力領域にツールチップを出力する やりかた xhtmlのinput要素のtitleにエラーメッセージを出力する 前回の記事と ほぼ同じ発想です。 実装 Titleに出力メッセージを扱う…

JSFでエラーフィールドの背景色を変える(3)

JSF

vermeer.hatenablog.jp の続き。 前回の記事で 課題とした https://github.com/system-sekkei/isolating-the-domain のように 背景色というよりも、指定領域のスタイルを変更する という要件には応えられていません。 について、今回は取り組みたいと思いま…

JSFでエラーフィールドの背景色を変える(2)

JSF

vermeer.hatenablog.jp の続きです。 私の仕組みでは、Application層の検証不正に対しても画面項目と関連付け出来るようにしています。 そこで その仕組みを利用して 先のパターンに独自の実装を追加します。 やりたいこと やりかた 実装 UIInputのClientId…

JSFでエラーフィールドの背景色を変える

JSF

ConversationScopedで 戯れた日々を終え、メッセージ関係に戻って 新たな取り組みを。 入力フィールドの背景色を変えるという定番です。 定番ですが、ここまで引っ張ってしまったのは この定番をやろうと思ったときに ViewIDをイイ感じに BeanValidationと連…

NonexistentConversationExceptionからの画面遷移

vermeer.hatenablog.jp と vermeer.hatenablog.jp の続きです。 今回はNonexistentConversationExceptionからの画面遷移を考えます。 やりたいこと(妥協もあり) NonexistentConversationExceptionからの会話開始画面へ遷移する 状態管理は不可 メッセージ…

BusyConversationExceptionからの画面遷移

vermeer.hatenablog.jp の続きです。 前回は、強制的に会話スコープの開始ページに遷移するという仕様としましたが、正直 これは 私の求めている機能ではありません。 それぞれの例外に対して、目指す振る舞い(できる処理)が異なるので まずは BusyConvers…

BusyConversationException、NonexistentConversationExceptionからの画面遷移

vermeer.hatenablog.jp に続けて vermeer.hatenablog.jp でも、一旦 保留とした BusyConversationExceptionが発生した場合の制御です。 実行時例外はエラー画面へ遷移させるというのが基本原則だとは思いますが、コミットした情報(例えば注文)について把握…

ConversationのBeginをviewAction以外で実現する

vermeer.hatenablog.jp vermeer.hatenablog.jp 課題 viewActionはルートとなるViewに記述しないといけない に対する対処です。 方式として、Interceptorが使えないというのは 検討済みでした。 会話が未開始の画面から遷移したときには、良い感じにBeginして…

ConversationScopedを扱うにあたっての課題

もしくは、JSFのConversationScopedをフォルダでBegin・Endの方式見直しに向けて。 あるいは、ConversationScopedにおけるExceptionハンドリング です。 vermeer.hatenablog.jp で、f:viewActionで制御をしていたのですが、テンプレートを使って 同じことを…

ConversationScopedのタイムアウトからの画面遷移

他のExceptionHandlerを実装している中で 以前の記事 vermeer.hatenablog.jp で扱っていなかったタイムアウト周りの制御を やってみました。 ベースとするプロジェクトは、以前のサンプルのものではなく 以下のものに実装を加えて行いました。 vermeer.haten…

JSFで指定の場所に検証結果のメッセージを出力する

vermeer.hatenablog.jp の続き。 出力順序とは別モノですが メッセージを指定の場所に出力するというのをやりたいと思います。 おそらく、ですが 一般的な JSFにおける Valisationと 対象項目に対してメッセージを出力するための流れとしては 入力項目のidと…

Page/Formのvalidateを見直す

vermeer.hatenablog.jp vermeer.hatenablog.jp で考えたことに対して、実際の実装を経て 妥協(?)した vermeer.hatenablog.jp を踏まえて、改めて整理をした方が良さそうに思い 考えてみることしました。 はじめに 考え直してみようと思ったことを呟いたも…

Java EE(JSF)でDDDのようなことを考えてみる(2)

vermeer.hatenablog.jp から、多少の肉付けをした版。 やったこと Validation ValidationExceptionの制御 メッセージ(出力まで) ConversationScope制御 Redirectの強制 基本は過去の記事などで取り扱った要素を組み込んだ感じです。 DDD的なところ? あん…

ExceptionHandlerWrapperでInjectできないけど、ExceptionHandlerFactoryにはInjectできる

JSF

BeanValidationの結果をExceptionHandlerでメッセージ出力させようと思って色々やっていた足跡みたいなものです。 とりあえず、あとから振り返りが出来るようにするためのメモ。 (独自の実装クラスとか ありますが そのあたりの説明は省略します) 事象 ryo…

JSFとCDIとBeanValidationで想定外だったこと

そもそも「いや、それJSFだと亜流ですので」って終わりそうな話だと思いますが、誰かの何かに役立つかもしれないので。 環境 Payara5 Java EE7 Java8 事象 コンテナ(CDI)で生成したインスタンスのフィールドってnullなんだ。。アクセッサ経由じゃないと値…

FormのプロパティをStringに

vermeer.hatenablog.jp 以前の記事では、どちらかというと Presenter パターンに近いイメージで実装しています。*1 集合の部品となるForm その主たる関心事であるドメイン(ValueObject)を包含します。 インスタンス化およびgetterの際の型は基本的にString…

Java EE(JSF)でDDDのようなことを考えてみるための土台

Formに関して色々と考えている中で、部分的に考えるのも良いけれど、一度、ベタで自分なりにJava EE(JSF)で、DDDっぽい感じの実装サンプルをつくってみて もうちょっと全体を見渡せるようなものを作ってみた方が、もう少し具体的に考察出来るのかなぁと思…

JSFのラジオボタン

JSF

ラジオボタン(SelectOneRadio)を使うことを個人的に あまり使うことがなくて 特に調べていなかったのですが、今 ちょっと やっていることで たまたま出てきて いざJSFで やろうとしたときに 色々と気になったので まとめてみることにしました。 あくまで、…

【考察】FormとEntityの類似点

Formに関して、アレコレ考えていると、Entityとの類似点が多いように思えてきた。 つらつらと思いついたことをメモ。 Identification 画面のどこの何、という意味で「ここのこのフィールド」という一意な場所が必要。 姓と名が同じ値だった場合(そんな名前…

JSFのIDあれこれ

JSF

JSFで生成されるidあれこれ - Challenge Java EE ! に加えて pass throughを実際に使ってみた実装サンプル 目的は JSFが生成するidとnameについて確認する事。 定義

JSFで2重Submit対策(続)

前回やっていないこととした「入力画面まで戻ったFormの更新抑止」について対応をしてみました。 vermeer.hatenablog.jp やっていないことで2つ目に挙げた案である immediate を使うやり方です。 出来れば xhtmlに手を加えないやり方の方が良いかなぁ、と思…

JSFで2重Submit対策

一般的な2重Submitは、hiddenで保持したトークン と サーバのセッションで保持しているトークンを比較する、というやり方だと思います。 さいきょうの二重サブミット対策 - Qiita これは、これで正しいと思いますし、多くの人が知っているであろう やり方な…

JSFのConversationScopedをフォルダでBegin・End

vermeer.hatenablog.jp この記事で、やろうと思っていたことの お試し実装。 やりたいこと あるページから遷移したときに、遷移前と遷移後のフォルダが異なる場合、ConversationをBeginする。 フォルダから離脱するときにConversationをEndする。 Conversati…

JSFで自動Redirect

JSFをちょっと便利にする仕組み はじめに JSFで遷移先を指定するときに、return xxx.xhtml と記述します。 リダイレクトしたい場合は return xxx.xhtml?faces-redirect=true と記述します。 というか、リダイレクトしないことは皆無に近しいので、必ず記述し…

Tomcat と Java EE 7(JSF2.2) で Hello

JSF

余分なものを除外した雛型みたいなもの。 画面遷移も なーんにもない、本当に「Hello」としか出力しないもの。 以前、作った時のpomと今回のpomは微妙に違ったりも。 しかも、Java EE 8 がリリースされているのに、Java EE 7(笑)*1 とにかく、これでJSFで…

JSFのメモ

JSF

リファレンス https://javaserverfaces.github.io/docs/2.3/ https://javaserverfaces.github.io/docs/2.3/vdldocs/facelets/index.html 8.9 HTML5-Friendly Markup - Java Platform, Enterprise Edition: The Java EE Tutorial (Release 7) ViewScoped 【JS…

JSF(ManagedBean)

作成単位 コンポーネント単位(呼出元となるxhtml単位)。 またはユースケース単位(呼出元となるxhtmlが複数にまたがるケース) 個人的なこだわり 少し調べて見ると「ManagedBeanは画面単位で作成します」という表現を見かけることがある。 多くの場合、画…

JSFでResourceBundleを適用する

JSF

前回は、全部入りのResourceBundleを作ってみました。 vermeer.hatenablog.jp 今回は、そのResourceBundleをJSFで使えるようにするためのパーツとサンプル実装を作りました。ほとんどは、参考リンクのままです。 ResourceBundleのファクトリークラス /* * * …

JSFのSelectItemにEnum以外の値を指定する

過去の記事への追記です。 vermeer.hatenablog.jp セレクトボックスにEnum以外の「選択無し」という値を指定したい場合があると思います。 コードの貼り付けだけになりますが、誰かのご参考になれば やっていることは静的ページもAjaxを使った動的ページも同…