Mais conteúdo relacionado
Semelhante a JavaEE6 First Application #glassfishjp (20)
Mais de Satoshi Kubo (13)
JavaEE6 First Application #glassfishjp
- 1. JAVAEE 6
FIRST APPLICATION
#GLASSFISHJP
12年6月4日月曜日
- 4. そんな人向け
軽い気持ちで見て下さい。
12年6月4日月曜日
- 5. 自己紹介
• 名前:久保智(@megascus)
• Javaが好きらしい
• JavaEE6は趣味でやってます!
• JavaEE6でSIの現場が楽になればいいなとか
12年6月4日月曜日
- 6. アジェンダ
• サンプルアプリを作成
• サンプルアプリにそって説明
12年6月4日月曜日
- 7. 今回作るアプリの説明
• 基本のCreate,Read,Update,Delete
ネタバレ禁止。
12年6月4日月曜日
- 8. 早速作ってみる
https://github.com/megascus/
JavaEE6FisrtApplication
12年6月4日月曜日
- 9. 出来上がったファイル一覧
web.xml UI beans.xml DB
faces-config.xml persistence.xml
template.xhtml Message.java
Create.xhtml MessageFacade.java
Edit.xhtml AbstractFacade.java
List.xhtml
View.xhtml ※他は省略
jsfcrud.css
Bundle.properties
MessageController.java
PaginationHelper.java
JsfUtil.java
12年6月4日月曜日
- 10. UI(VIEW)から順番に
web.xml beans.xml
faces-config.xml persistence.xml
template.xhtml Message.java
Create.xhtml MessageFacade.java
Edit.xhtml AbstractFacade.java
List.xhtml
View.xhtml ※他は省略
jsfcrud.css
Bundle.properties
MessageController.java
PaginationHelper.java
JsfUtil.java
12年6月4日月曜日
- 11. UI (JSF)
• JavaEE6の標準UI技術はJSF2.0
• JavaScript書けなくてもリッチなUIが作成できる
• いろいろな所で感じるStruts臭()
Struts知ってれば使えるよ。
12年6月4日月曜日
- 13. web.xml
• 言わずと知れたJavaで作ったWebアプリのコアファイル
• セッションのタイムアウト時間とか設定できるよ!
• 今回はデフォルトで設定
困ったときに修正してね。
12年6月4日月曜日
- 14. faces-config.xml
• JSFの設定ファイル。struts-configみたいなもの
• JSF1.Xでは超重要だったけど今は空気(にしたい)
• 国際化対応時は使用する
画面数が増えてきても使う。
12年6月4日月曜日
- 16. XHTML
• JSFのViewはXHTMLで記載
• XHTMLなので色々と面倒くさい <BR> → <BR /> とか
HTMLが雑すぎるとも言う。
12年6月4日月曜日
- 22. template.xhtml
h:XX、ui:XXみたいなのがJSFで記載さ
れたところ。
実行時にはHTMLに変換される。
12年6月4日月曜日
- 26. Create.xhtml
ui:composition でテンプレート
を指定。
ui:defineでui:insertの置換。
12年6月4日月曜日
- 27. #{bundle.XXXX}の説明
Create.xhtml
faces-config.xml
Bundle.properties
いわゆる国際化対応。
12年6月4日月曜日
- 29. value binding
• 画面の値をJavaにマッピングする
bundle.XXXもこれと一緒。
managed-bean(JavaBeans)やmapな
どをマッピングできます。
12年6月4日月曜日
- 30. method binding
• 画面の操作をJavaにマッピングする
h:commandLinkは<a href=~>に変換され
るので、リンクが押されるとセッショ
ンに入っているMessageControllerクラス
のcreateメソッドが呼ばれます。
12年6月4日月曜日
- 31. commandLinkのaction
• 拡張子を除いてURLを書いておけば他のページに遷移
immediate=”true”はサーバーサイドで値
を使わないという意味。
12年6月4日月曜日
- 33. jsfcrud.css
• cssを知らない人が居れば説明するので挙手して下さい
手を上げたやつ土下座な。
12年6月4日月曜日
- 34. UI系のJavaファイル
web.xml beans.xml
faces-config.xml persistence.xml
template.xhtml Message.java
Create.xhtml MessageFacade.java
Edit.xhtml AbstractFacade.java
List.xhtml
View.xhtml ※他は省略
jsfcrud.css
Bundle.properties
MessageController.java
PaginationHelper.java
JsfUtil.java
12年6月4日月曜日
- 40. JsfUtils.java
• JSFでやり方のわかりにくいアレやらコレやら
• これ自体よりも内部で呼ばれているクラスが重要
JSFで困ったらここから呼ばれている
クラスで出来ないかを調べる。
12年6月4日月曜日
- 41. JsfUtils.java
• FacesContext
• ExternalContext
• Converter
エトセトラエトセトラ。全部説明した
いがスライドの余白が足りない。
12年6月4日月曜日
- 42. エラーメッセージの表示だけ
JsfUtils.java
Create.xhtml
strutsで見たことがあるような・・・
12年6月4日月曜日
- 43. 次はDB系
web.xml beans.xml
faces-config.xml persistence.xml
template.xhtml Message.java
Create.xhtml MessageFacade.java
Edit.xhtml AbstractFacade.java
List.xhtml
View.xhtml ※他は省略
jsfcrud.css
Bundle.properties
MessageController.java
PaginationHelper.java
JsfUtil.java
12年6月4日月曜日
- 44. beans.xml
• CDI(今回未使用)のための設定ファイル
• CDIが有効化される条件はこのファイルがあること
• CDIの有効化方法が判りにくいので紹介だけ
DB系として紹介しているけどDBとは
関係ないです。
12年6月4日月曜日
- 48. データソースについて
• GlassFishの管理コンソールで設定したものを使用する
• 今回は最初から定義されているjdbc/__defaultを使用
詳細は優しい人がtweetしてくれます。
12年6月4日月曜日
- 49. Message.java
• いわゆるエンティティと呼ばれるもの
• RDBのテーブルと対応する
• コレを元にテーブルが自動生成される
エンティティにDBの値が保持されて
います。
12年6月4日月曜日
- 56. MessageFacade.java
• EJB内ではデータベースのトランザクション管理をス
レッドに紐付ける形で勝手にやってくれる
• commitとかrollbackは不要
EJBというかJTAですけどね。
12年6月4日月曜日
- 57. MessageFacade.java
• この中でデータベースへエンティティの値が同期され
る
• トランザクション管理が必要な処理はこの中で
EJBの外でも同じ事は出来ますが、EJB
の中でやったほうが便利です。
12年6月4日月曜日
- 58. MessageFacade.java
• この中でデータベースへエンティティの値が同期され
る
• トランザクション管理が必要な処理はこの中で
EJBの外でも同じ事は出来ますが、EJB
の中でやったほうが便利です。
12年6月4日月曜日
- 74. 今回のアプリの処理の流れ
XHTML(画面)
MessageController(managed-bean)
Message(Entity)で値をやり取り
MessageFacade(EJB)
EntityManager(DB)
おおざっぱにこんな順に呼ばれてま
した。
12年6月4日月曜日