Befor  Home 


6) 標準EL関数の使い方

EL関数を使うと画面の出力結果をJava側で編集することができます。

以下は、標準EL関数を使った日付の書式を変更するサンプルです。

(1) Webフォーム(beans_input_list.html)

<html>
<head>
<title>日付チェック</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
    <h3>日付を入力してください</h3>
    <p>
        日付入力と、表示のサンプルです。<br/>
        日付の入力は以下の入力が可能です。<br/>
    </p>
    <p>
    <div id="area">
        【入力可能な書式】。<br/><br/>
        yyyy-MM-dd, yyyy/MM/dd, yy-MM-dd yy/MM/dd, <br/>
        yyyy-MM-dd hh:mm:ss, yyyy/MM/dd hh:mm:ss, yy-MM-dd hh:mm:ss, yy/MM/dd hh:mm:ss,<br/>
        YYYYMMDD, YYMMDD, <br/>
        mm/dd/yyyy, mm/dd/yyyy hh:mm:ss<br/>
    </div>
    </p>
    <form name="calf1" method="post" action="./html_4_0/date_check/show.wb">
        <div id="area">
            日付を入力してください:<input name="date" value="${date}"/>
            <li>入力結果->${dateC.format(result.date, yyyy/MM/dd)}</li><br/>
            <li>明日->${dateC.add(result.date, yyyy/MM/dd, d, 1)}</li><br/>
            <li>昨日->${dateC.add(result.date, yyyy-MM-dd, d, -1)}</li><br/>
            <li>1ヵ月後->${dateC.add(result.date, yy/MM/dd, M, 1 )}</li><br/>
        </div>
        <br/>
        
        <p>
            <input type="submit" value="送信"/><br/>
        </p>
    </form>
    
</body>
</html>

dateCメソッドは、java.util.Dateインスタンスの書式や、日付演算をサポートするEL関数です。
dateC.formatは、日付の書式を設定することができ、dateC.addで日付演算を行うことが出来ます。
dateCの実装は、org.itscool.stylist.function.DateCクラスになります。
dateCが提供するメソッドについてはjavadocを参照してください。


(2) フォームクラス(weber_4_0_sample.org.itscool.date_check.DateCheck.java)

package weber_4_0_sample.org.itscool.date_check;

import java.util.Date;

public class DateCheck {
    private Date date;

    public Date getDate() { return date; }
    
    public void setDate(Date date) { this.date = date; }
}

(3) アクションクラス(weber_4_0_sample.org.itscool.date_check.DateCheckShowAction.java)

package weber_4_0_sample.org.itscool.date_check;
import java.util.ArrayList;

import org.itscool.weber.action.Action;
import org.itscool.weber.action.ActionBucket;

public class DateCheckShowAction extends Action{
    
    public String doExecute(ActionBucket bucket){
        String input = (String)this.getParameter("date");

        DateCheck date = (DateCheck)bucket.getForm();
        bucket.setAttribute("result", date);
        bucket.setAttribute("date", input);
        return "input";
    }
}

実行結果は以下のとおりです。


(4) 標準でサポートされているEL関数の一覧

標準EL関数はdateC.format、dateC.add以外にも以下のものが提供されています。

  • decimalC.format(int num, String fmt)
  • numに指定した値をfmtで指定された書式に変換します
    内部でjava.text.DecimalFormat.formatを実行しています。

  • stringC.insertLine(String srcStr, int lineLen)
  • 文字列srcStrに対して文字数lineLen毎に改行(<br>)を挿入します。

  • stringC.lineToBr(String srcStr)
  • 文字列srcStrに含まれる改行コードを<br>に変換します。

  • stringC.trim(String srcStr)
  • 文字列srcStrから両端のスペースを除去します。

  • stringC.zeroPadding(String|int value, int size)
  • valueに対してsize分ゼロパディングします。

  • stringC.spacePadding(String|int value, int size)
  • valueに対してsize分スペースパディングします。

  • stringC.nSpacePadding(String|int value, int size)
  • valueに対してsize分全角スペースパディングします。

  • mathC.add(int a, int b)
  • 2つの引数の加算を行います。

  • mathC.sub(int a, int b)
  • 2つの引数の減算を行います。

  • mathC.kakeru(int a, int b)
  • 2つの引数の積算を行います。

  • mathC.waru(int a, int b)
  • 2つの引数の乗算を行います。

  • mathC.mod(int a, int b)
  • 2つの引数の乗算の余りを返します。

  • messageC.get(String key)
  • 引数で指定したキーに該当するメッセージを出力します。


    Befor  Home