オブジェクト指向の原則集

近況:米国に1週間予定の出張にいったら5週間に伸びてしまいました。久しぶりに、ブログを更新しようと思います。今回は、オブジェクト指向の原則集です。取り上げる原則は以下の通りです。 GRASPパターン(9つ、デザインパターンや他の原則より先に取り上…

FizzBuzz問題と仕様通りの実装

C++、COM、VBA、VBScript、C#には触れていたのですが、Javaになかなか触れなかったためしばらく期間があいてしまいました。そろそろ再開しようと思います。Javaの開発TLのはずなんですが。最近は経験の浅いチームメンバのソースをレビューすることも多いので…

Eclipse+JSF+JPAで作るアプリ(20)―Primefaces ドラッグ&ドロップ

今回は、カート画面でのドラッグ&ドロップです。 借りたい映画のエリアと、カートに戻す映画のエリア2つの領域をドラッグ&ドロップで移動させます。先に画面を見せます。 ドラッグすると、ドロップできるエリアがハイライトされ、このテーマでは薄い青色…

Eclipse+JSF+JPAで作るアプリ(19)―JSF Flashを使った画面遷移

今回は、画面遷移する際にパラメータを渡す方法です。いざStrutsからJSF 2へ! 移行における最大のポイントは?──最新Java EE開発“虎の穴” 第2回 岩崎浩文氏 - page2 - builder by ZDNet Japanにあるように、Flashというオブジェクトを使います。 解説にある…

Eclipse+JSF+JPAで作るアプリ(18)―JPA Criteria API

今回は、JPAのCriteria APIです。やりたいことは、前回作った検索画面で、タイトル、カテゴリ、あらすじの3つのフィールドでnullまたは空白だったら無視をして、ANDの検索条件を動的に作ることです。 JPQLのパラメータでは、固定のパラメータとなるため、AP…

Eclipse+JSF+JPAで作るアプリ(17)―Primefaces Autocompleteを使う。

今回は、映画の検索画面を作成します。 技術的な内容は、以下の通りです。 Primefacesのp:autocompleteの使い方。 JPAのdistinct句 Java SDK8.0のLambda式 これらを組み合わせて使っているので、実装自体はすっきりとします。実装すると次のような画面が表示…

Eclipse+JSF+JPAで作るアプリ(16)―Primefaces データテーブルの設定 後半(3) グリッド編集(cellEditor,rowEditor)

Primefacesのデータテーブルのいろいろ、ひとまずの最後はグリッド編集(セル編集)です。 こちらも、基本的に簡単です。 PrimefacesのShowcaseを見ての通り、2通りの編集方法があります。 http://www.primefaces.org/showcase/ui/data/datatable/edit.xhtml…

Eclipse+JSF+JPAで作るアプリ(15)―Primefaces データテーブルの設定 後半(2) コンテキストメニュー

Primefacesのデータテーブルタグ(p:datatable)の設定を色々と変えて動作を確認を行うセッションの後半その2です。 コンテキストメニューを表示する。 セルをグリッドで編集できるようにする。 のうち、コンテキストメニューの表示を行えるようにします。コ…

Eclipse+JSF+JPAで作るアプリ(14)―Primefaces データテーブルの設定 後半(1) イベントハンドル

Primefacesのデータテーブルタグ(p:datatable)の設定を色々と変えて動作を確認を行うセッションの後半です。 選択時のイベントハンドルを行う。 コンテキストメニューを表示する。 セルをグリッドで編集できるようにする。 を行えるようにします。前回までで…

Eclipse+JSF+JPAで作るアプリ(13)―Primefaces データテーブルの設定 前半 ナビゲータとチェックボックス

今回は、Primefacesのデータテーブルタグ(p:datatable)の設定を色々と変えて動作を確認します。やりたいことは、 ソートできるようにする。 フィルタできるようにする。 ページナビゲーターを付ける。 テーブルのヘッダーをウィンドウに固定する。(エクセル…

Eclipse+JSF+JPAで作るアプリ(12)―Primefaces テーマの変更

今回は、Primefacesのテーマの変更です。 PrimefacesのThemeSwitcherというコンポーネントを使います。 PrimeFaces ShowCaseで紹介されています。 Advancedのサムネイルが表示されているほうを試しましたがうまく動作しませんでしたのでBasicで実装していま…

Eclipse+JSF+JPAで作るアプリ(11)―ManagedBeanと画面

前回は、xhtmlで書かれたテンプレートとそのパーツ、テンプレートクライアントについて記述しました。今回は、マネージドビーンについて記述します。 JSFでの画面要素は、Managed Beanと呼ばれるPOJOにマップされます。 また、画面上のアクション(コマンド…

Eclipse+JSF+JPAで作るアプリ(10)―Faceletsテンプレート

今回はログイン画面、ユーザ一覧を表示する画面を作ります。 作ったものの画面は以下の通りです。ユーザー一覧: ログイン画面: 両方同じテンプレートを使用していて、テンプレートはトップペイン、レフトペイン、ボトムペイン、コンテンツペインからできて…

Eclipse+JSF+JPAで作るアプリ(9)―JSF トピック

今回からJSFです。JSFで取り上げたいトピックです。このページはやりたいトピックが増えると更新する予定です。■EL式 ■画面遷移、faces-config.xml ■スコープ ■Faceletsによるテンプレート ■バリデーションとコンバータ ■XML記述 ■アノテーション記述 □カス…

Eclipse+JSF+JPAで作るアプリ(8)―ライフサイクルとCascadeType

今回はほとんどの内容が(6)と(7)と同じか、そのおさらいです。 先にトピックの解説を行い、後半に参考までにコード全体を載せます。目新しい点は、 CascadeTypeとオブジェクトのライフサイクルのおさらい JPQLでの、ネストしたオブジェクトの属性値の指定 で…

Eclipse+JSF+JPAで作るアプリ(7)―テストケースの実行

今回は前回作ったUserManagerのテストケースの作成です。目的は、 すぐに動くテストケースを実行できるようにする テストケースの実行時にテーブルを作成してしまう です。テーブルはそのままでは日本語が使えないためSQL Server Management Studio(SSMS)の…

Eclipse+JSF+JPAで作るアプリ(6)―JPA EntityMangerの利用

このアプリはロジックはそんなにないためほぼDAO(DataAccessObject)といわれるパターンに近い実装になります。今回の範囲は前回触れなかった、 JPQLを使ったクエリ アプリケーション管理するEntityManager になります。

Eclipse+JSF+JPAで作るアプリ(5)―JPAのエンティティ

前回までに、Glassfishの設定、DBの設定、web.xml、persistence.xmlと設定ばかりでしたが、今回から数回に分けてJPAの実装を行います。さて、早速ですが仕様を変更しました。 『本』をやめて、『映画』にしました。サムネイルやレィティングなどのGUIの要素…

Eclipse+JSF+JPAで作るアプリ(4)―JPA persistence.xmlとEntity

今回からJPAサイドです。 JPAを設定するpersistence.xmlを記述します。 とっかかりやすいよう、persistence.xmlにJDBCドライバを直接記述する方法をとります。 JPAプロバイダも、toplinkとeclipselinkが使えますが、ログファイルが簡単に出せるeclipselinkを…

Eclipse+JSF+JPAで作るアプリ(3)―Hello World(2)

後半です。 Dynamic Web Projectの作成 JPA、JSF facetの設定 index.xhtmlの作成 web.xmlの編集 warファイルのエクスポートとautodeployへのコピー JSFの特徴はjspではなく、xhtmlを使うところです。

Eclipse+JSF+JPAで作るアプリ(2)―Hello World(1)

Eclipse上で、プロジェクトを作成しHelloWorldプログラムを Glassfishにデプロイするまでの流れを記述します。 Eclipseプラグインのインストール 空のデータベースの作成 JDBCポートの有効化 SQL Serverを選んだ理由はこの空のデータベース作成のステップが…

Eclipse+JSF+JPAで作るアプリ(1)―Glassfishのインストール

JSF+JPAを使ったアプリケーション作成 オフィスで昼休みに遊びでアプリケーションを作っていましたが情報を整理するため、ポイントをブログに残そうと思います。 Hibernate, Strutsを使ってはいましたが、JPA、JSFは初めてです。 経験は無いながら、なるべ…