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

Javaで主にシステム開発をしながら思うところをツラツラを綴る

JSF

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

リファレンス Mojarra 2.3.0 Documentation JSF 2.3 View Declaration Language: Facelets Variant 8.9 HTML5-Friendly Markup - Java Platform, Enterprise Edition: The Java EE Tutorial (Release 7) 参考リンク FaceletsはぴったりとJSFにフィットします…

JSF(ManagedBean)

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

JSFでResourceBundleを適用する

JSF

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

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

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

JSFでTableのCheckboxをAjaxで更新

前回は、同一行の情報書き換えをAjaxで行いました。 今回は、明細行の全選択という一覧型の更新ページで良く登場するパターンをAjaxで実装してみたいと思います。 いくつか参考を探してみたのですがrenderの値を表示行ごとに生成するというやり方で実装をし…

JSFのSelectItem(Table)をAjaxで更新

前回vermeer.hatenablog.jp は単体のセレクトボックスの更新でした。 今回はテーブル構造のリストの一部を更新したケースです。 Ajaxでは繰り返し行の一部だけを更新しています。*1 今回はControllerに変換に使用するクラスを保持するというやり方をしていま…

JSFのSelectItemをAjaxで更新

前回の続き vermeer.hatenablog.jp submitで画面を更新しても良いですが、Ajaxの部分更新の方が操作性が良いです。 流れとしては xhtmlにajaxタグを追記 ManagedBeanにajaxイベントのListenerを実装 これだけです。 以下の実装でやっていることは、Enum has …

JSFのSelectItemを拡張したEnumで実装する

前回、Enumを拡張しました vermeer.hatenablog.jpこれを使ってJSFのSelectItemを実装します。ちなみに、Enumだけでも十分対応は出来るようです。 【メモ】JSFでenumのオブジェクトをselectOneMenuに使う方法 - mike-neckのブログ JSFのConverterで見た闇の話…