Seasar2

くーす2本改めGoya(?)

"Goal Oriented Yummy Approach"ですか。いつ公開されるのだろう。くーす2本は11月の吉日とか書かれてたけど、それより早まるのか。それにしても書籍ではなく、PDFというのは意味ある選択かも。きっと原稿書いてるそばから改定するような勢いなんだろうな…

S2Pager

http://www.nulab.co.jp/~agata/s2pager/doc/s2pager.html 「S2Daoを使ってページャを実現するライブラリ」らしい。なるほど。便利かも。でも「ダウンロード」のリンク先は"404 not found"。うーん。しょうがないのでぐぐってみたら http://www.nulab.co.jp/…

Employee Managementを読んでみて

実際にEmployee Managementのソースを読んでみると、いろいろなことがわかると同時に「こういう場合はどうするんだろう」といった疑問もどんどん出てきて、それを自分なりに追いかけると理解が深まったりしていい勉強になりました。個人的な感想としてはS2JS…

Employee Management4-(3)

ではemployeeList.htmlの画面組み立てを見ていく。ポイントはforEachタグを使った繰り返しかな。 <span m:inject="s:forEach" m:items="#{employeeDtoList}" m:var="e" m:varIndex="i"> : </span> items属性:繰り返す対象 var属性:個々の要素にアクセスする名前 varIndex属性:ここの要素を表すインデックス名 この場合はemployeeDtoList(初期化処理…

Employee Management4-(2)

/employee/employeeList.htmlはemployeeSearch.htmlへ入力された条件に該当するレコードをリスト表示する画面。ボチボチ見ていくことにする。最初は初期化メソッド。 <html xmlns:m="http://www.seasar.org/maya" m:action="#{employeeListInitAction.initialize}" m:extends="/WEB-INF/layout/layout.html"> このemployeeListInitActionはemployee.diconでexamples.jsf.action.impl.Em…</html>

Employee Management4-(1)

/employee/employeeSearch.htmlの[create]ボタンから始まる一連の処理は前回までで片付いたので(?)、今度はの[search]ボタン追ってみる。employeeSearch.htmlそのもの、あるいは表示されるまでの仕組みはこちらを参照。ということで <input type="button" value="search" m:action="#{employeeSearchAction.checkSearchCount}" onclick="location.href='employeeList.html'"/> employeeSearchActionも…

Employee Management3-(6)

では/employee/employeeConfirm.htmlのbody部分を見ていく。最初にrenderedの4連発。なるほど。employeeConfirm.htmlは全モード共通で使われる画面なんだね。 <span m:value="Create" m:rendered="#{processModeDto.processMode == 1}" m:class="display" class="notdisplay"> Create </span> <span m:value="Edit" m:rendered="#{processModeDto.processMode == 2}"> …</span>

Employee Management3-(5)

/employee/employeeConfirm.htmlを見ていくことにする。最初はこれ。 <html xmlns:m="http://www.seasar.org/maya" m:action="#{employeeConfirmInitAction.initialize}" m:extends="/WEB-INF/layout/layout.html"> これまでのパターンにあてはめるとexamples.jsf.action.impl.EmployeeConfirmInitActionImplだろうな、と思ってemployee.diconをみたらその通り。 </html>

Employee Management3-(4)

/employee/employeeEdit.htmlは残りボタンだけかな。 <input type="button" value="confirm" m:action="#{employeeEditAction.goConfirm}" onclick="location.href='employeeConfirm.html'"/>

Employee Management3-(3)

/employee/employeeEdit.htmlの初期化メソッドが終わったので続きを見ていく。構造的には/employee/employeeSearch.htmlと同じだね。と、思ったらいきなりひっかかる。 <span m:value="Create" m:rendered="#{processModeDto.processMode == 1}" m:class="display" class="notdisplay"> Create </span> うーん。なんだろ。これ。class属性が2つもあるし。renderedって何?ってぐぐ…

Employee Management3-(2)

/employee/employeeEdit.htmlもやっぱり初期化メソッドで始まるのね。 <html xmlns:m="http://www.seasar.org/maya" m:action="#{employeeEditInitAction.initialize}" m:extends="/WEB-INF/layout/layout.html"> このemployeeEditInitActionはemployee.diconでexamples.jsf.action.impl.EmployeeEditInitActionImplクラスのインスタンスで、requestスコープと宣言されてい…</html>

Employee Management3-(1)

今日はemployeeSearch.htmlにある[create]ボタンを見ていく。 <input type="button" value="create" m:action="#{employeeSearchAction.goEditForCreate}" onclick="location.href='employeeEdit.html'"/> S2JSFの環境では、このボタンを押したとき実行されるのはemployeeSearchAction.goEditForCreate。MethodBindingだね。これが返す値(String)で次の遷移先が決まる。一方onclickはプレビューのと…

Employee Management2-(3)

employeeSearch.htmlの残りも見ていく。といってもEmployeeName, Job, Managerはスルー。その次のHireDate, Salaryは最初見たときちょっと微妙な感じがした。 <tr> <td class="label">HireDate</td> <td><input id="fromHiredate" type="text" m:value="#{employeeSearchDto.fromHiredate}"/> <span m:inject="h:message" m:for="fromHiredate" m:class="error"/>~ </span></td></tr>

Employee Management2-(2)

次はemployeeSearch.htmlのメイン部分である <span m:inject="s:insert" m:name="body"> : </span> の内部を見てみる。このspanタグで囲まれた部分がlayout.htmlの <span m:inject="s:insert" m:name="body"/> の部分を置き換えるわけだね。で、最初に出てくるのが <span m:inject="h:messages" m:globalOnly="true" m:class="error"/> これは </span></span>

Employee Management2-(1)

前回はemployeeSearch.htmlが表示されたところまで行ったけど、このhtmlファイルについては最後のDepartmentコンボボックス以外はスルーというかよく見ていなかったので、頭からボチボチ見ていくことにする。 まず先頭に <html xmlns:m="http://www.seasar.org/maya" m:action="#{employeeSearchInitAction.initialize}" m:extends="/WEB-INF/layout/layout.html"> <head> があるけど、これはこっちで見たか</head></html>…

Employee Management1-(4)

えっと、どこまで行った?あーEmployeeSearchInitActionImplの前準備までね。そうすると、これでemployeeSearch.htmlのhtmlタグで指定したactionの部分が起動されるわけ。 <html xmlns:m="http://www.seasar.org/maya" m:action="#{employeeSearchInitAction.initialize}" m:extends="/WEB-INF/layout/layout.html"> 実際に動くのはEmployeeSearchInitActionImpl#initialize()だよ。 publi…</html>

S2JSFのサンプルhello.html

menu.htmlのHelloというリンクをクリックすると Hello World と表示されるようなコードに見えるのだが、そうはならず Hello しか表示されない。 このHelloというリンクはmenu.htmlで定義されているがそこでは <a m:action="hello">Hello <span m:inject="f:param" m:name="message" m:value="World"/> </a> となっている。http://seasar.sourcefor…

S2JSFプラグインのインストール

S2JSFはHTMLにJSFのコードを書き足す感じ。それじゃということで某所でも紹介されていた「HTMLEditorプラグイン」を入れてみることにした。 https://sourceforge.jp/projects/amateras/files/ ところがだめ。解凍してできたファイルをeclipse(3.0.2)のplugin…

S2JSF Exampleのインストール

次はS2JSF。ってJSFもよく知らないのに無謀かもw。でもこればっかりは動かさないとイメージがつかめないのでExampleをインストールしてみる。以下そのときの手順。 J2SEのインストール(インストール済の1.4.2_06を使用) Eclipseのインストール(インストール…

Kijimunaすごい

S2のチュートリアルをやるのにあたりKijimunaをインストールしてみたら、想像以上にすごかった。もうこれ無しでdiconファイルを書くなんてありえない、とまで思った。日本でもこんなにすごいPlug-inを開発する人たちがいるんだ。そういった意味でも感激した。

Seasar2チュートリアル?(2)

今日もhttp://www.wikiroom.com/Seasar/?Seasar%20V2からリンクされているblog上のチュートリアルをやってみる。 list16 ふみゅ。destroyが起動しない。なんで。 list17 やっぱりだめだな。実行結果はsingletonなんだけどdestoryが呼ばれていないな。なんで…

Seasar2チュートリアル(1)

S2Containerリファレンス読むのもいいけど、少しは手を動かそう!ということでチュートリアルが無いかぐぐってみる。で、ヒットしたのがこれ→http://www.wikiroom.com/Seasar/?Seasar%20V2 別な人がやっているblog上のチュートリアルの目次みたいなもの。 や…

S2Containerリファレンス

S2Dao以上の読みにくさ。S2Containerのミソは「自動バインディング」にあると思うけど、そこが非常にわかりにくい。だって自動バインディングが最初に出てくるのは「S2Container定義の分割とインクルード」の説明の中。まだ自動バインディングが何者か説明す…

S2Daoリファレンス(3)

じっくり読んだら、さすがにいろいろわかってきた。でも テーブル結合(特に3つ以上の場合)がいまいちイメージ掴めない。 トランザクション処理がどうなっているのかさっぱりわからん。 後者については「S2のリファレンスを読め」ということか。先は長いな。…

S2Daoリファレンス(2)

難解だ。読めば読むほど疑問点が出てくる。リファレンスマニュアルだからかもしれないが、読み手がどんな疑問を持つか?なんてことを考慮して書いてないせいだろうな。「詳細はサンプルプログラムをみてね」というスタイルだが、そのコードを見てもわからん…

S2Daoリファレンス

読み始めたけど、こりゃきついわw。うちの社員や外注さんに「これ読んで理解して」って渡したら、まず間違いなく「ふざけるな(怒」って投げ返されそうだ。最初につまずいたのが「N:1マッピング」のRELNO定数。なんで「0,1」なの?1:1の場合は不要?テーブル…

JavaWorld2005/5号

手始めに「Seasar2の実力を探る」を読む。S2Containerについてはオンランドキュメントを簡略化したもの?というか、簡略化しすぎてオンラインDocよりわかりにくいよ。つーか、これだと「なんでこんな簡単なことをするのに、こんな複雑なことをするの?」とい…

実戦投入のタイミング

しかしながら、S2DaoにしろAOPにしろ、S2が裏で何をやっているのか分かっている人がプロジェクトに1人はいないと、実際のプロジェクトへの適用は難しいのではないかという感触をもった。具体的には、ダイコンの設定ファイルの書き方や、AOPのトランザクショ…