Apcoordinator ユーザーズガイド
|
目次
|
15.4.2 フィールドタグの利用
フィールドタグは、対応する項目クラスと組み合わせて利用する方法と、単独で利用する方法があります。
■対応する項目クラスと組み合わせて利用する
フィールドタグには対応する項目クラスがあります。
例えば、uji:fieldString
タグにはFieldString
クラスが対応しています。
データBeanでこの項目クラスをプロパティとして定義します。
package sample;
import com.fujitsu.uji.compo.*;
public class BodyBean extends com.fujitsu.uji.DataBean
{
protected FieldString strData = new FieldString();
public FieldString getStrData() {
return strData;
}
...
}
|
JSPではタグをデータBeanのプロパティに関連付けて記述します。
<FORM>
<uji:fieldString bean="body" property="strData" />
...
</FORM>
|
フォームが送信されると、入力項目に入力されたデータは項目クラスに格納されます。また、画面表示時には、項目クラスが持つデータが表示されます。
このとき、表示するデータに文字 '"', '&', '<', '>' が含まれている場合は、それぞれ'"', '&', '<', '>'に変換されて出力されます。
uji:label
タグには対応する項目クラスはありません。
また、フィールドタグと画面部品タグを組み合わせて使うことで、画面部品で利用したオブジェクトを引き継ぐことができます。
■フィールドタグを単独で利用する
フィールドタグを利用する場合、データBeanに項目クラスではなく一般のString等の型が利用できます。
package sample;
public class BodyBean extends com.fujitsu.uji.DataBean
{
protected String strData;
public String getStrData() {
return strData;
}
public void setStrData(String strData) {
this.strData = strData;
}
...
}
|
JSPの記述は項目クラスを利用する場合と同じです。
<FORM>
<uji:fieldString bean="body" property="strData" />
...
</FORM>
|
フォームが送信されると、入力項目に入力されたデータはpropertyアトリビュートで指定したプロパティに格納されます。また、画面表示時には、プロパティの値が表示されます。
このとき、表示する値に文字 '"', '&', '<', '>' が含まれている場合は、それぞれ'"', '&', '<', '>'に変換されて出力されます。
uji:pushButton
タグ、uji:label
タグは項目に対応しません。
データBeanのプロパティ、タグのプロパティ指定は必要ありません。
<FORM>
<uji:pushButton name="OK" />
...
</FORM>
|
項目クラスの代わりにデータBeanで使用できる型は、
String、boolean、byte、char、int、long、float、double、BigDecimal、BigInteger
です。uji:fieldDate
タグでは、さらにDate型も使用できます。
これらの型を使用した場合、Webcoordinatorが型を判定し、フォームに入力されたデータを自動変換します。自動変換できない場合は、初期値(null、ゼロ)がデータBeanに設定されます。
■フィールドの色や大きさを指定する
フィールドタグのアトリビュートで、色や大きさを指定します。
Netscape 4.xでは色、大きさの指定は無効です。
<FORM>
<uji:fieldString bean="body" property="strData"
width="120" height="40" background="yellow" foreground="blue"
borderWidth="3" fontSize="12pt" />
...
</FORM>
|
文字色など設定の一部は、項目クラスのプロパティで変更できます。
項目クラスで指定した内容はタグのアトリビュートよりも優先されます。
dataBean.getStrData().setForeground("red");
|
項目クラスを使用しない場合の指定方法は、外付け属性の利用を参照してください。
■数値フォーマットを指定する
数値項目のフォーマットの指定が可能です。
<FORM>
<uji:fieldLong bean="body" property="longData"
outputFormat="\\#,##0" />
...
</FORM>
|
入力データは一般的な形式は自動的に変換されます。
例として、整数フィールドでは"-1234"、"\2,000"のような文字列は自動変換します。
特別な形式で入力する場合には、項目クラスを継承し、変換用のメソッドを作成する必要があります。
package sample;
import java.text.*;
import com.fujitsu.uji.compo.*;
public class MyFieldDate extends FieldDate {
// 入力文字列originalを一般形に変換する
public String parse(String original) {
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyMMdd");
return formatter.parse(text).toString();
} catch(Exception e) {
return "0000/01/01"; // エラー用の値
}
}
}
|
■入力値の範囲をチェックする
項目クラスに数値範囲の上限下限を設定することで、範囲チェックを容易に記述することができます。
... 表示前
dataBean.getLongData().setMinimumValue(0);
dataBean.getLongData().setMaximumValue(100);
... 入力後
if(dataBean.getLongData().getErrorCode() != FieldLong.NO_ERROR) {
... エラー
}
|
uji:form
タグと併用することにより、チェックのためのJavaScriptコードを自動生成します。
送信時にチェックを実行し、エラーの場合、ブラウザ画面にメッセージを表示します。
<uji:form name="myform">
<uji:fieldLong bean="body" property="longData"
minimumValue="0" maximumValue="100" />
...
</uji:form>
|
All Rights Reserved, Copyright © 富士通株式会社 2000-2005