2018-01-01から1年間の記事一覧
BeanValidationの結果をExceptionHandlerでメッセージ出力させようと思って色々やっていた足跡みたいなものです。 とりあえず、あとから振り返りが出来るようにするためのメモ。 (独自の実装クラスとか ありますが そのあたりの説明は省略します) 事象 ryo…
そもそも「いや、それJSFだと亜流ですので」って終わりそうな話だと思いますが、誰かの何かに役立つかもしれないので。 環境 Payara5 Java EE7 Java8 事象 コンテナ(CDI)で生成したインスタンスのフィールドってnullなんだ。。アクセッサ経由じゃないと値…
vermeer.hatenablog.jp 以前の記事では、どちらかというと Presenter パターンに近いイメージで実装しています。*1 集合の部品となるForm その主たる関心事であるドメイン(ValueObject)を包含します。 インスタンス化およびgetterの際の型は基本的にString…
自動生成というと エクセルなどのドキュメントから 超高速開発のようにコードを自動生成したり、雛型コードを生成して 後から詳細の実装を追記したり 雛型コードを継承して差分実装をしたり という*1感じだと思います。 そして、私自身、自動生成できるんだ…
SoR 2.0 って何だろうというのと RDRAに興味があるというのと 増田さんの お話を聞ける というところで いくつも興味があって tagile.doorkeeper.jp に行ってきました。 基幹システムと向き合いながら、SoEを構築する 以前はスタートアップからの問い合わせ…
Selenide Selenide: concise UI tests in Java Selenideを試行錯誤しながら実践するブラウザ自動テスト Selenide~Javaで超簡単・簡潔にUIテストを書く~ #Java - Qiita Selenide入門 #Java - Qiita Seleniumで擬似要素を扱うためのTips #Java - Qiita speak…
Formに関して色々と考えている中で、部分的に考えるのも良いけれど、一度、ベタで自分なりにJava EE(JSF)で、DDDっぽい感じの実装サンプルをつくってみて もうちょっと全体を見渡せるようなものを作ってみた方が、もう少し具体的に考察出来るのかなぁと思…
ラジオボタン(SelectOneRadio)を使うことを個人的に あまり使うことがなくて 特に調べていなかったのですが、今 ちょっと やっていることで たまたま出てきて いざJSFで やろうとしたときに 色々と気になったので まとめてみることにしました。 あくまで、…
Formに関して、アレコレ考えていると、Entityとの類似点が多いように思えてきた。 つらつらと思いついたことをメモ。 Identification 画面のどこの何、という意味で「ここのこのフィールド」という一意な場所が必要。 姓と名が同じ値だった場合(そんな名前…
環境変数で設定したい情報 開発とプロダクトで異なる値になるものは環境変数(もしくは それに準ずる仕組み)で設定したいところです。 まずは、何を対象にするのか整理。 JSF javax.faces.PROJECT_STAGE javax.faces.FACELETS_SKIP_COMMENTS javax.faces.FA…
JSFで生成されるidあれこれ - Challenge Java EE ! に加えて pass throughを実際に使ってみた実装サンプル 目的は JSFが生成するidとnameについて確認する事。 定義
ですよねw2の場合って、プレゼンテーション層ではどう処理しますか?APIのcontrollerだったら共通の例外処理で例外Response返せば良いと思いますが、HTML返す場合で一律のエラーページに飛ばさずに画面の表示をエラー文言にしたい、とかの場合はtry-catchす…
メッセージをEnumにすることでタイプセーフにする仕組みを以前作りました。 vermeer.hatenablog.jp これと同じように、色々な要素から「文字列で直接指定している」というところを、ちょっとずつ無くしていきたいと思っていて そのためのネタを整理です。 で…
前回やっていないこととした「入力画面まで戻ったFormの更新抑止」について対応をしてみました。 vermeer.hatenablog.jp やっていないことで2つ目に挙げた案である immediate を使うやり方です。 出来れば xhtmlに手を加えないやり方の方が良いかなぁ、と思…
一般的な2重Submitは、hiddenで保持したトークン と サーバのセッションで保持しているトークンを比較する、というやり方だと思います。 さいきょうの二重サブミット対策 - Qiita これは、これで正しいと思いますし、多くの人が知っているであろう やり方な…
API 設計ガイダンス - Best practices for cloud applications | Microsoft Docs Zalando RESTful API と イベントスキーマのガイドライン 翻訳: WebAPI 設計のベストプラクティス - Qiita RFC 7239 - Forwarded HTTP Extension JavaでのREST API開発におい…
vermeer.hatenablog.jp この記事で、やろうと思っていたことの お試し実装。 やりたいこと あるページから遷移したときに、遷移前と遷移後のフォルダが異なる場合、ConversationをBeginする。 フォルダから離脱するときにConversationをEndする。 Conversati…
JSFをちょっと便利にする仕組み はじめに JSFで遷移先を指定するときに、return xxx.xhtml と記述します。 リダイレクトしたい場合は return xxx.xhtml?faces-redirect=true と記述します。 というか、リダイレクトしないことは皆無に近しいので、必ず記述し…
EEなんだから、やっぱりPayaraだよね。 ということで、この記事のPayara版 vermeer.hatenablog.jp Hello しかしていないから、本当にこれが正しいのか全く分からないけれど。。 PayaraはEサーバーなので、pomでの依存解決や、web.xmlなどの記述量が減ります…
余分なものを除外した雛型みたいなもの。 画面遷移も なーんにもない、本当に「Hello」としか出力しないもの。 以前、作った時のpomと今回のpomは微妙に違ったりも。 しかも、Java EE 8 がリリースされているのに、Java EE 7(笑)*1 とにかく、これでJSFで…
過去記事の vermeer.hatenablog.jp vermeer.hatenablog.jp vermeer.hatenablog.jp と、ResourceBundleの扱いを追加した vermeer.hatenablog.jp を まとめ直してライブラリを作成しました。 過去記事との違い ライブラリにするにあたって、過去の記事の実装と…
はじめに そもそもResourceBundle#getBundleに対して複数のリソースを読み込ませたいという要求自体があまりないのかもしれません。 もしそれをしたいのであれば、ListなりにResourceBundleを保持しておいて検索すれば事足りると思います。 ですが、BeanVali…
vermeer.hatenablog.jp の続きです。 AnnotationでLabelを付与するという仕組みにしたわけですが、よくよく考えてみるとFormObjectというインターフェースをもっているのだから、そこで対象クラスを判断してPropertyに登録した表示項目名を参照するようにし…
はじめに 標準のBeanValidationで宣言的に実装する というのをするのは良いのですが、表示させるメッセージとしては「どの項目」というラベルが欲しいところです。 messageに項目名を付与した文言を都度指定する、というやり方もあると思いますが、テンプレ…
前回はコードのイメージということで全量を公開していませんでした。 vermeer.hatenablog.jp 今回は、前回はしていない部分のコードの説明を中心にしていきたいと思います。 Form用のValidation関連 マーカーとなるアノテーションと優先度を示すアノテーショ…
リファレンス 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…
vermeer.hatenablog.jp で書けなかったモヤモヤしたところを、自分なりにBeanValidationを中心として考えていく中で整理できつつあるので、具体的な実装に入る前に、まず まとめてみたいと思います。 それは、画面用オブジェクト(以降、Form)とドメインオ…
はじめに BeanValidationのメッセージを遅延変換する、ということの意図を簡単に説明したいと思います。 BeanValidationは検証(validate)した際にメッセージ変換も一緒に実行してくれます。 基本的に、これはありがたい機能なのですが、Domainで発行したメ…
vermeer.hatenablog.jp vermeer.hatenablog.jp
最新の考察 vermeer.hatenablog.jp レイヤーで論理的な役割を整理したので、次はパッケージです。 パッケージ概要 フォルダ構成例 boundedcontext ├─application │ └─service │ └─hoge │ ├─domain │ ├─model │ │ └─hoge │ │ hogeFactory │ │ hogeRepository …