ひがやすを技術ブログ

電通国際情報サービスのプログラマ

2004-05-01から1ヶ月間の記事一覧

elseはどうなる

/*BEGIN if(#bar != null)*/ bar=/*#bar*/'a' //ELSE bar is not null /*END*/複数行なら、 /*BEGIN if(#bar != null)*/ bar=/*#bar*/'a' /*ELSE bar is not null ... */ /*END*/かしら。ポイントは、else部分はSQL的には評価されないように コメントアウト…

S2Tapestry

S2

次の3つのクラスで構成されます。 以前のまさたかさんのコードを最新のS2に対応させてます。 public class GlobalProxy { private Object global_; public GlobalProxy(Object global) { global_ = global; } public Object getGlobal() { return global_; }…

S2Unit

S2

1つのスキーマで作業しているのですが、Excelにあるデータと同じものがテーブルにすでに存在すると、テストデータのセットアップでエラーが発生してしまいます。 データのセットアップでエラーになるのはいただけません。そこで、readXlsDeleteAndWriteDbな…

Good by Sel(Tapestryのおっさん風)

S2

Selという独自のものから、式言語としてはメジャーなOGNLに 移行したわけですが、失ったものもそれなりにありましたね。 initMethod,destroyMethodで使っていたthis,outがそれぞれ#self, #outになります。 定数の参照がこれまでは、this.MIN_VALUEのようにか…

S2Dao INの展開

S2

hogeListはList型の変数だとして、 /*BEGIN if(#hogeList != null && !#hogeList.isEmpty)*/ hoge in /*#hogeList*/('a', 'b', 'c') /*END*/こんな感じ!? INの文脈で、Collection or Arrayが変数として出てきたら、 自動的に展開するという仕様も盛り込んで…

S2Unit

S2

S2TestCaseでフィールドに自動セットするのは、 型がインターフェースのときのみです。 例えば、 private Hoge hoge_;のように定義されている場合、Hogeがインターフェースの ときのみ自動セットされます。 実は、フィールド名からアンダースコアを除いた名…

S2Daoの複雑な条件

S2

オリジナルはfoo=’a’ AND (bar=’b’ OR bar=’c’) /*BEGIN if(#foo != null)*/ foo=/*#foo*/’a' /*END*/ /*BEGIN*/ AND ( /*BEGIN if(#bar1 != null)*/ bar=/*#bar1*/’b’ /*END*/ /*BEGIN if(#bar2 != null)*/ OR bar=/*#bar2*/’c’ /*END*/ ) /*END*/BEGINとEN…

S2Dao

S2

動的なSQLの組み立てをSQLコメントでやるってのを考えてみました。 #変数名で変数を参照します。これはOGNL語です。 バインド変数には、コロン(:)を使うようにしました。 /*BEGIN*/ WHERE /*BEGIN if(#job != null)*/ job = /*:#job*/'CLERK' /*END*/ /*BEGI…

OGNL

S2

君の暖かな暗闇に僕をかくまってほしいんだ。 by 仔犬のワルツ前からやろうと思いながら手をつけずにいたSelからOGNLへの 乗換えをS2Tapestryのリリースにあわせて計画中。 影響範囲は、名前空間の扱いとstaticフィールドの参照の仕方が 少し変わることです…

S2HibernateV1.0.2, S2StrutsV1.0.1, S2StrutsExampleV1.0.1リリース

S2

それぞれライブラリのS2のバージョンを2.0.7にしました。 log4jも最新のV1.2.8にしました。 SourceForgeにアップされたらid:hoso-kawaさんから アナウンスがあると思います。

EJB3

さまざまな噂が飛び交うEJB3ですが、 本当にDIContainer(+メタデータ・AOP) + Hibernateのぱくりになるなら、 Seasarも対応します。 Springっぽい仕様になるならちょっとやだけど。

S2Dao

S2

SQLの定義は、XMLではなく、すべて外部ファイルにしたいと思います。これまでどおりXMLでも外部ファイルでもできるようにしたいと思います。 <>などの扱いがあるためです。 後、基本的なマッピングは、静的なものとし、動的に条件が 変わる場合は、SQLからJa…

ダイコン

S2

http://homepage3.nifty.com/seasar/DIContainer.html ダイコンの説明を大幅改定しました。

Seasar V2.0.7 リリース

S2

リリースメモ SingletonS2ContainerFactory(S2ContainerServletとの連動)の導入 S2ContainerBuilderの追加 ドキュメントのDependency Injection対応 修正点 instanceモードがprototypeのときにSelを使った場合の問題を解消。 S2DataSetでカラムのアンダース…

S2ContainerBuilder

S2

S2Container build(String path, ClassLoader loader)を追加します。 後、拡張子groovy用のBuilderとして、 org.seasar.groovy.GroovyS2ContainerBuilderを あらかじめ登録しておくので、このクラス名での対応を お願いします。 -> 高井さん。

S2DBCPタイムアウトバグ

S2

V2.0.6のS2DBCPは、フリープールからコネクションを取り出したとき、 タイムアウトをキャンセルしていないというバグがあって、 コネクションが意図しないときにcloseされるケースがあります。m(_ _)m これまで起きなかったのは、フリープールから取り出した…

S2ガンダム入門 without EJB

S2

この話題のテーマは学徒動員兵をどう戦力化するか、なので、見様見真似でも何とかなる、ってほうがいいんじゃないか、と思うんです 畳上の水練になると困るので、あとは手を動かすチュートリアルですか。知識とスキルは別物で、スキルは経験によって鍛えられ…

Tapestry入門記(11) Submit2

複数のSubmitコンポーネントがある場合に昨日やったように tagパラメータを使う方法以外に、リスナーメソッドを直接起動 する方法もあります。 <form jwcid="@Form"> <input type="submit" jwcid="@Submit" listener="ognl:listeners.submit" label="submit"/> <input type="text" jwcid="@TextField" value="ognl:text"/> </form>この方法の注意点は、リスナーメソッドが呼び出されるタイミングは、 rewindと同じだということです。たぶん…

Tapestry入門記(10) ページの初期化

昨日、複数のリクエスト間で、ページの状態が維持されているみたい と書いたのですが、プーリングされているページが再利用されている のでそう見えたみたいです。 まさたかさんに教えていただきました。 試しに、ページに値をセットしてブラウザを落とし、 …

ガンダム

S2

Javaの全てを知り尽くした生産性の高い人員=ニュータイプ+ガンダム が必要である一方、環境変数もコマンドプロンプトもなあんにも知らない人員=一般人+ジム が必要なんです。で、ダメなところは徹底的なテストで救っていくという (T_T) ええと、私はほん…

Tapestry入門記(9) Submit

サブミットされたときの処理は、フォームに Submitコンポーネントが1つしかない場合には、 これまでやってきたようにFormコンポーネントの listenerパラメータを使います。 <form jwcid="@Form" listener="ognl:listeners.submit">それでは複数のSubmitコンポーネントがある場合はどうするのでしょうか。 1つはSubm</form>…

S2ContainerBuilder

S2

XMLやGroovyによるS2Containerの作成を簡単に切り替えられる ようにS2ContainerBuilderの導入を検討しています。 S2ContainerBuilderインターフェースでは次のメソッドが 定義されています。 S2Container build(String path);S2ContainerBuilderの切り替えを…

SingletonS2ContainerFactory

S2

を用意します。 Webで使う場合は、S2ContainerServletをweb.xmlに登録しておけば、 SingletonS2ContainerFactoryと連動するようになります。 なので、S2Containerを取得したい人は、 SingltonS2ContainerFactory.getContainer()を 呼べばいいことになります…

新社屋

etc

新社屋は品川のV-Towerの隣です。 席は15Fの窓際なので、眺め良しです。 ラッキー。

S2Daoの開始・終了コメント

S2

id:masataka_kさんやid:habuakihiroさんのつっこみをうけて考えてみました。 項目が1つの場合は、開始タグだけで**/で閉じる。 隣の項目が対象。 empno = /*S2 ?{empno} **/7788ネストする場合は、開始タグは*/で閉じ、 終了タグは/***/で閉じる。 /*S2*/WHE…

Tapestry入門記(8) PageRenderListener

今日から出社。なんと朝プロです。 職場が品川に移ったので家(田町:芝浦)からグーンと近くなって 余裕があるのです。 ページを表示・更新する最初のイベントを捕まえたい ときに使うのが、PageRenderListenerです。 こいつをimplementsして、pageBeginRender…

Tapestry入門記(7) Select, Option, Foreach

今回は、前回やったRadioSeasarのドロップダウンバージョンを作ってみます。 最初はSelectSeasar.html <form jwcid="@Form" listener="ognl:listeners.refresh"> <select jwcid="@Select"> <span jwcid="@Foreach" source="ognl:@hello.SelectSeasar@SEASARS" value="ognl:seasar"> </span></select></form>

S2Dao

S2

今日でGWはおわり。うちの会社は品川へ引っ越すため、 4/30が休日になった代わりに、5/5から出社になります。 S2DaoではSQL開発者とJava開発者がきちんと分業する仕組みを 提供します。 SQL*Plusなどでも直接実行できるし、 Javaのオブジェクトとのマッピン…

Seasar V2.0.7 予告

S2

S2.0.7では SingletonS2ContainerFactory(S2ContainerServletとの連動)の導入 ドキュメントのDependency Injection対応 instanceモードがprototypeのときにSelを使った場合の問題を解消。 S2DataSetでカラムのアンダースコアが消える問題を解消。 WebLogic6.…

Tapestry入門記(6) Radio, Asset

Tapestry in ActionのHangmanってどうしてあんなに難しいんでしょうね。 最初の例なのに。 今回は、Seasarのバナーも出たことなので、Radioの選択に あわせて、イメージを青シーサー、赤シーサーに 切り替えられるようにします。 最初は、RadioSeasar.htmlで…