- PR -

TimestampeのBena

1
投稿者投稿内容
がんこチーム
会議室デビュー日: 2004/09/08
投稿数: 15
投稿日時: 2004-09-25 20:07
Strutsとorg.apache.commons.dbutils.handlers.BeanListHandlerを使って開発しようと考えています。その際にDB上でDate型のフィールドをTimestampで受け取りたいと考えています。
BeanListHandlerを使うため、DB上でDate型のフィールドに対応したBeanのプロパティをTimestamp型にしなければなりません。しかし、そのBeanのプロパティをJSPでStrutsのタグライブラリを使って表示しようとすると、Timestampの仕様から「年」や「月」などが求めている数値(年は2004、月は一月を1とした連番)で帰ってきません。どこかでデータの変換をしないといけないのですが、どのように解決するのが一番良い方法なのかわかりません。どのように解決したらよいのか教えてください。

自分自身での解決際。
・beanにプロパティの追加する。そして、データベースからデータを取り出した後Beanから日付けデータを取り出すし、その日付データを加工して追加したプロパティにデータをセットする。

・独自のタグライブラリを作りデータを加工して表示する。

beanの例
public class TestBean
{
public Timestamp test;

/**
* @return
*/
public Timestamp getTest()
{
return test;
}

/**
* @param timestamp
*/
public void setTest(Timestamp timestamp)
{
test = timestamp;
}
}

データベースの例
TEST          ←(カラム名)
---------------- 
2004/09/26 20:00    ←(データ)


タグの使用例(keyをtestとして入れた場合。)
<bean:write name="test" property="test.year" />

_________________
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-09-26 05:21
1)Timestamp 型から年、月、日などの値を個別に取り出したい
2)Bean のプロパティとして年、月、日を取り出したい
という2つの要件でしょうか?
1)については、Timestamp は Date 型の子クラスですので SimpleDateFormat 等をつかって好きな値を取り出すことができます。
http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
2)については、それぞれの getter を作って1)で取り出した値を返すように実装すれば良いかと思います。
がんこチーム
会議室デビュー日: 2004/09/08
投稿数: 15
投稿日時: 2004-09-26 18:49
ありがとうございます。まさに、SimpleDateFormatをつかった解決方法が、<bean:write>タグにありました。

解決方法

タグの使用例(keyをtestとして入れた場合)
<bean:write name="test" format="yyyy/MM/dd HH:mm" />
1

スキルアップ/キャリアアップ(JOB@IT)