| 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では色、大きさの指定は無効です。
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