FrontPage > SAStrutsの覚書 > サンプルアプリ

入力チェック

検索画面の検索条件「従業員番号」、「雇用日」に対して入力チェックを追加する。

従業員番号:整数のみ
雇用日:日付チェック(yyyy/MM/dd)

1. Actionフォームの対象プロパティにアノテーションを追加

SearchEmpFormの対象プロパティにアノテーションを追加。

SearchEmpForm.java抜粋

	/** 従業員番号 */
	@IntegerType
	public String empNoCondition;

	/** 雇用日最小日付 */
	@DateType(datePattern="yyyy/MM/dd")
	public String hiredateMin;

	/** 雇用日最大日付 */
	@DateType(datePattern="yyyy/MM/dd")
	public String hiredateMax;

2. Actionの検索メソッドでvalidatorを有効にする。

SearchEmpAction.search()のアノテーションを以下のように変更する。
エラーの場合はindex()を実行する。

SearchEmpAction.java抜粋

	@Execute(validator=true, input="index")
	public String search() {
		・・・

3. エラーメッセージ表示

  • src/main/resources/application_ja.propertiesに以下を追加

    application_ja.properties
    labels.empNo=従業員番号
    labels.hiredateMin=雇用日
    labels.hiredateMax=雇用日
  • /sassample/src/main/webapp/WEB-INF/view/searchEmp/searchEmp.jsp修正
    エラー表示位置に<html:errors/>を追加
    対象の<html:textへerrorStyleClass追加

    searchEmp.jsp抜粋
    ・・・
    <tiles:put name="content" type="string">
    <div class="content">
    	<html:errors/>
    	<s:form method="POST">
    		<table class="data">
    		<tr>
    			<th class="data">従業員番号</th>
    			<td class="data">
    				<html:text property="empNoCondition" size="10" maxlength="10" errorStyleClass="error"/></td>
    			<th class="data">従業員名</th>
    			<td class="data">
    				<html:text property="empNameCondition" size="20" maxlength="20"/></td>
    		</tr>
    		<tr>
    			<th class="data">雇用日</th>
    			<td class="data" colspan="3">
    				<html:text property="hiredateMin" size="10" maxlength="10" errorStyleClass="error"/> 〜
    				<html:text property="hiredateMax" size="10" maxlength="10" errorStyleClass="error"/>(yyyy/mm/dd)
    			</td>
       ・・・
  • /sassample/src/main/webapp/css/stylesheet.cssへ以下を追加
    .error {
    	background-color: #ff8080;
    }

3. 実行結果

sassample03.jpg





添付ファイル: filesassample03.jpg 52件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-01-11 (水) 23:48:46 (2743d)