2004-05-01から1ヶ月間の記事一覧
/*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的には評価されないように コメントアウト…
次の3つのクラスで構成されます。 以前のまさたかさんのコードを最新のS2に対応させてます。 public class GlobalProxy { private Object global_; public GlobalProxy(Object global) { global_ = global; } public Object getGlobal() { return global_; }…
1つのスキーマで作業しているのですが、Excelにあるデータと同じものがテーブルにすでに存在すると、テストデータのセットアップでエラーが発生してしまいます。 データのセットアップでエラーになるのはいただけません。そこで、readXlsDeleteAndWriteDbな…
Selという独自のものから、式言語としてはメジャーなOGNLに 移行したわけですが、失ったものもそれなりにありましたね。 initMethod,destroyMethodで使っていたthis,outがそれぞれ#self, #outになります。 定数の参照がこれまでは、this.MIN_VALUEのようにか…
hogeListはList型の変数だとして、 /*BEGIN if(#hogeList != null && !#hogeList.isEmpty)*/ hoge in /*#hogeList*/('a', 'b', 'c') /*END*/こんな感じ!? INの文脈で、Collection or Arrayが変数として出てきたら、 自動的に展開するという仕様も盛り込んで…
S2TestCaseでフィールドに自動セットするのは、 型がインターフェースのときのみです。 例えば、 private Hoge hoge_;のように定義されている場合、Hogeがインターフェースの ときのみ自動セットされます。 実は、フィールド名からアンダースコアを除いた名…
オリジナルは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…
動的なSQLの組み立てをSQLコメントでやるってのを考えてみました。 #変数名で変数を参照します。これはOGNL語です。 バインド変数には、コロン(:)を使うようにしました。 /*BEGIN*/ WHERE /*BEGIN if(#job != null)*/ job = /*:#job*/'CLERK' /*END*/ /*BEGI…
君の暖かな暗闇に僕をかくまってほしいんだ。 by 仔犬のワルツ前からやろうと思いながら手をつけずにいたSelからOGNLへの 乗換えをS2Tapestryのリリースにあわせて計画中。 影響範囲は、名前空間の扱いとstaticフィールドの参照の仕方が 少し変わることです…
それぞれライブラリのS2のバージョンを2.0.7にしました。 log4jも最新のV1.2.8にしました。 SourceForgeにアップされたらid:hoso-kawaさんから アナウンスがあると思います。
さまざまな噂が飛び交うEJB3ですが、 本当にDIContainer(+メタデータ・AOP) + Hibernateのぱくりになるなら、 Seasarも対応します。 Springっぽい仕様になるならちょっとやだけど。
SQLの定義は、XMLではなく、すべて外部ファイルにしたいと思います。これまでどおりXMLでも外部ファイルでもできるようにしたいと思います。 <>などの扱いがあるためです。 後、基本的なマッピングは、静的なものとし、動的に条件が 変わる場合は、SQLからJa…
http://homepage3.nifty.com/seasar/DIContainer.html ダイコンの説明を大幅改定しました。
リリースメモ SingletonS2ContainerFactory(S2ContainerServletとの連動)の導入 S2ContainerBuilderの追加 ドキュメントのDependency Injection対応 修正点 instanceモードがprototypeのときにSelを使った場合の問題を解消。 S2DataSetでカラムのアンダース…
S2Container build(String path, ClassLoader loader)を追加します。 後、拡張子groovy用のBuilderとして、 org.seasar.groovy.GroovyS2ContainerBuilderを あらかじめ登録しておくので、このクラス名での対応を お願いします。 -> 高井さん。
V2.0.6のS2DBCPは、フリープールからコネクションを取り出したとき、 タイムアウトをキャンセルしていないというバグがあって、 コネクションが意図しないときにcloseされるケースがあります。m(_ _)m これまで起きなかったのは、フリープールから取り出した…
この話題のテーマは学徒動員兵をどう戦力化するか、なので、見様見真似でも何とかなる、ってほうがいいんじゃないか、と思うんです 畳上の水練になると困るので、あとは手を動かすチュートリアルですか。知識とスキルは別物で、スキルは経験によって鍛えられ…
複数の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と同じだということです。たぶん…
昨日、複数のリクエスト間で、ページの状態が維持されているみたい と書いたのですが、プーリングされているページが再利用されている のでそう見えたみたいです。 まさたかさんに教えていただきました。 試しに、ページに値をセットしてブラウザを落とし、 …
Javaの全てを知り尽くした生産性の高い人員=ニュータイプ+ガンダム が必要である一方、環境変数もコマンドプロンプトもなあんにも知らない人員=一般人+ジム が必要なんです。で、ダメなところは徹底的なテストで救っていくという (T_T) ええと、私はほん…
サブミットされたときの処理は、フォームに Submitコンポーネントが1つしかない場合には、 これまでやってきたようにFormコンポーネントの listenerパラメータを使います。 <form jwcid="@Form" listener="ognl:listeners.submit">それでは複数のSubmitコンポーネントがある場合はどうするのでしょうか。 1つはSubm</form>…
XMLやGroovyによるS2Containerの作成を簡単に切り替えられる ようにS2ContainerBuilderの導入を検討しています。 S2ContainerBuilderインターフェースでは次のメソッドが 定義されています。 S2Container build(String path);S2ContainerBuilderの切り替えを…
を用意します。 Webで使う場合は、S2ContainerServletをweb.xmlに登録しておけば、 SingletonS2ContainerFactoryと連動するようになります。 なので、S2Containerを取得したい人は、 SingltonS2ContainerFactory.getContainer()を 呼べばいいことになります…
新社屋は品川のV-Towerの隣です。 席は15Fの窓際なので、眺め良しです。 ラッキー。
id:masataka_kさんやid:habuakihiroさんのつっこみをうけて考えてみました。 項目が1つの場合は、開始タグだけで**/で閉じる。 隣の項目が対象。 empno = /*S2 ?{empno} **/7788ネストする場合は、開始タグは*/で閉じ、 終了タグは/***/で閉じる。 /*S2*/WHE…
今日から出社。なんと朝プロです。 職場が品川に移ったので家(田町:芝浦)からグーンと近くなって 余裕があるのです。 ページを表示・更新する最初のイベントを捕まえたい ときに使うのが、PageRenderListenerです。 こいつをimplementsして、pageBeginRender…
今回は、前回やった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>
今日でGWはおわり。うちの会社は品川へ引っ越すため、 4/30が休日になった代わりに、5/5から出社になります。 S2DaoではSQL開発者とJava開発者がきちんと分業する仕組みを 提供します。 SQL*Plusなどでも直接実行できるし、 Javaのオブジェクトとのマッピン…
S2.0.7では SingletonS2ContainerFactory(S2ContainerServletとの連動)の導入 ドキュメントのDependency Injection対応 instanceモードがprototypeのときにSelを使った場合の問題を解消。 S2DataSetでカラムのアンダースコアが消える問題を解消。 WebLogic6.…
Tapestry in ActionのHangmanってどうしてあんなに難しいんでしょうね。 最初の例なのに。 今回は、Seasarのバナーも出たことなので、Radioの選択に あわせて、イメージを青シーサー、赤シーサーに 切り替えられるようにします。 最初は、RadioSeasar.htmlで…