質問: お世話になっております。 サーブレットJSPでWEBサービスを作っています。 画面側にデータを渡す際に、DTOオブジェクトにまとめて渡しているのですが、 画面にわたった時点ですべて文字列なのですべてString型にした方がいいのでしょうか? たとえば更新日時というTimestamp型カラムUPDATE_TSがあります。 EntityクラスはTimestamp型にしており、SELECTした際にセットされるのは YYYY-MM-DD HH:MI:SS.000000の形式なのですが 画面ではYYYY/MM/DDで表示したい場合、 DTO上の属性UPDATE_TSはTimestamp型のまま定義して画面側でJavascriptなどで加工するのか、 それともString型で定義し、Utilクラスなどを通して画面の表示にあわせるのが正しいのかどちらでしょうか? 別の例をあげると、処理時間というnumeric型カラムEXEC_MINがあり 80、240などの数値が入っているのですが画面上では01:20、04:00という時間表記にする場合Java側で加工する(DTOの該当属性をString型にする)のか画面側で加工するのかどちらが正しいでしょうか?
回答: サーブレットJSPとWebサービス?のところに少し疑問がありましたが、JSPが出ていますので通常のWebアプリケーションでの話を前提とします。 画面(JSP)で文字列型だとしても、DTOでは型を保持した方がJavaのコードで扱いやすくなるため、例えば例示しているTimestampで扱うのが良いでしょう。というのも、型変換の失敗やコンパイルエラーで未然に検知できるためです。 画面に表示する瞬間に、変換処理をかませるのがよいでしょうが、それはJavaScriptではなく、JSPで変換処理をするのが良いでしょうか。