投稿

4月, 2006の投稿を表示しています

CSS リキッドデザインで3段組

イメージ
CSSのレイアウトで思いっきりつまずきました。 仕様 メインコンテンツ(center)がHTMLの最初に書かれる メインコンテンツが収縮するリキッドレイアウトにする absoluteを使わずにfloatで作成する (3段組のレイアウトで、左をleft,真ん中をcenter,右をrightとしてdivのIDを付ける) ネックは、floatを設定すると幅サイズを設定しなければいけないこと、またメインコンテンツを最初に持ってこなければ比較的簡単になるが、それではだめという事 散々苦労したあげく、なんとか実現できました。1段組、2段組、3段組、共通したロジックで記述可能です。

関連するテーブルの情報取得

イメージ
RDBを利用していると、かならず複数のテーブルには関連性があります。 アプリケーションを作成するときに、それらの情報を結合して処理をすることになります。 2つのテーブルに対し別々にSQLを発行して、その結果をビジネスロジック側で結合すればよいことになりますが、iBatisでは、ResultMapの記述を工夫することで、簡単に値を取り出すことができます。 例えば、2つのテーブル(Table1とTable2)が存在し、JavaのBean側は、Bean1がBean2をプロパティとして持っているとします。 こんなときには、以下ののようなマッピングファイルを準備しましょう。 <resultMap id="bean1HasBean2" class="sample.iBatis.bean1"><result property="id" column="TABLE1_ID" /><result property="value" column="TABLE1_VALUE" /><result property="bean2Obj" column="TABLE2_ID" select="getBean2" /></resultMap><select id="getBean1" parameterClass="string" resultMap="bean1HasBean2">SELECT * FROM TABLE1 WHERE TABLE1_ID = #value#</select><select id="getBean2" parameterClass="string" resultClass="sample.iBatis.bean2">SELECT TABLE2_ID AS id, TABLE2_VALUE AS value FROM TABLE2 WHERE TABLE2_ID = #val

Tapestry Visit and Global

イメージ
Tapestry3.0では2種類のASO(Application state Object)が用意されていました。 Visit: セッション毎に作成されるオブジェクト 例えばユーザがログインしてログアウトするまでの、状態を保持する時に使用します Global アプリケーション単位で作成されるオブジェクト アプリケーションが起動して終了するまでの状態を保持する。初期設定値等を保持するのに使用される Tapestry3では、ページやコンポーネントからの、これらのオブジェクトへのアクセスは、getVisit(), getGlobal()等のメソッドが用意されアクセスする事が可能でした。Tapestry4では、この2つの関数はまだ残っていますが、動作が異なりますので注意が必要です。 Tapestry4では、getVisit(), getGlobal()は使用せずに、自分でApplication State Objectの作成をします。 私の場合は、appVisit, appGlobalの名前で作成し、わざと従来のVisit,Globalと区別して使用しています。 hivemodule.xml <!-- Visit & Global --><contribution configuration-id="tapestry.state.ApplicationObjects"><state-object name="AppVisit" scope="session"><create-instance class="jp.co.taosoftware.tagraw.tape.AppVisit" /></state-object></contribution><contribution configuration-id="tapestry.state.ApplicationObjects"><state-object name="AppGlobal" scope="application"><create-instance class=&

iBatisで使いまわし

イメージ
SQLを使ったアプリケーションを作成していると、同じ条件文が発生したりすることがあると思います。 例えば、件数を取得するSQLと情報自体を取得するSQLなどですね。 このような場合、iBatisでは、以下のように記述することで、同じ条件文を使いまわしたりすることができるようになります。 <sql id="userWhere"><dynamic prepend="WHERE"><isPropertyAvailable prepend="AND" property="AND_id_NULL">id IS NULL</isPropertyAvailable><isPropertyAvailable prepend="OR" property="OR_id_NULL">id IS NULL</isPropertyAvailable><isPropertyAvailable prepend="AND" property="AND_id_NOTNULL">id IS NOT NULL</isPropertyAvailable><isPropertyAvailable prepend="OR" property="OR_id_NOTNULL">id IS NOT NULL</isPropertyAvailable><isPropertyAvailable prepend="AND" property="AND_name_EQ">name = #name#</isPropertyAvailable><isPropertyAvailable prepend="AND" property="AND_name_LIKE">name like #name#</isPropertyAvailable></dynamic></sql&g