DWRにはサーバ側のJavaクラスからの戻り値とJavaクラスに渡す引数をJavascriptのデータ型に変換するConverterという仕組みが存在します。今回は、基本的なデータ型について、どのように変換が行われるのかを紹介していきます。
Converterは各データ型毎に存在します。以下の表に基本的なデータ型のコンバータークラスとJavascriptのデータ型の対応をまとめています。
| Javaのデータ型 | JavaScriptのデータ型 |
|---|
| org.directwebremoting.convert.PrimitiveConverter |
|---|
| boolean,java.lang.Boolean | 論理型 |
| byte,java.lang.Byte | 数値型 |
| short,java.lang.Short | 数値型 |
| int,java.lang.Integer | 数値型 |
| long,java.lang.Long | 数値型 |
| float,java.lang.Float | 数値型 |
| double,java.lang.Double | 数値型 |
| char,java.lang.Character | 文字列型 |
| org.directwebremoting.convert.StringConverter |
|---|
| java.lang.String | 文字列型 |
| org.directwebremoting.convert.BigNumberConverter |
|---|
| java.math.BigInteger | 数値型 |
| java.math.BigDecimal | 数値型 |
| org.directwebremoting.convert.DateConverter |
|---|
| java.util.Date | Date型 |
| java.sql.Date | Date型 |
| java.sql.Times | Date型 |
| java.sql.Timestamp | Date型 |
| java.util.Calendar | Date型 |
では、実際にDate型を使用するサンプルコードを紹介します。以下のサンプルはサーバ側のJavaオブジェクトからサーバの時間を保持するCalendarオブジェクトを取得し、Webページに表示します。
「DateUtil.java」
package myajax;
import java.util.Calendar;
public class DateUtil {
public Calendar getDate()
{
return Calendar.getInstance();
}
}
サーバ側のJavaクラスのカレンダーはCalenderインスタンスを取得して、それを戻り値として返却しています。そして「dwr.xml」に以下を追加します。
「dwr.xml」
<create creator="new" javascript="DateUtil">
<param name="class" value="myajax.DateUtil"/>
</create>
htmlでは、DateUtil.getDate()で取得した戻り値をそのままJavaScriptのDate型として使用できます。
「showdate.html」
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type='text/javascript' src='dwr/engine.js'> </script>
<script type='text/javascript' src='dwr/util.js'> </script>
<script type='text/javascript' src='dwr/interface/DateUtil.js'></script>
<title>サーバーの日時を表示する</title>
</head>
<body>
<script type="text/javascript"><!--
DateUtil.getDate(function(data){
document.write(data.getFullYear() + "年" + data.getMonth() + "月" + data.getDate() + "日 "
+ data.getHours() + "時" + data.getMinutes() + "分" + data.getSeconds() + "秒");
});
// --></script>
</body>
</html>
次回は自作したJavaBeanクラスを引き数と戻り値に使用する方法を紹介します。
ちょっと一休み. Javaキーワード並び替えゲーム
画面に表示される文字列を並び替えるとJavaに関連するキーワードになります。ヒントをたよりに並び替えを行ってエンターを押してください。
ユーザ登録をしてログインするとランキングに参加できます。