目次 > 第2章 Server(Web)版チュートリアル >  2.8 入力チェック(単項目) >  2.8.1 ログオン画面の入力チェック設定

2.8.1 ログオン画面の入力チェック設定

Server(Web)版が提供する入力チェックはCommons Validatorを利用しており、入力チェックの定義はバリデーション設定ファイルに記述する。
本項では、ログオン時に入力する「ユーザID」に対し、サーバー側で以下のチェックを実施する。

  • 必須入力である
  • 半角英数字である
  • 最大文字数は10文字である

なお、エラーメッセージはServer(Web)版が提供するデフォルトメッセージを利用する。

手順

本項では以下の作業が必要になる。

(1) ログオン画面の編集

入力チェックのエラーメッセージを表示するタグを追加する。

  1. “terasoluna-spring-thin-blank\webapps\logon\logon.jsp”を開き、<html:errors>タグを追加する。
    <%@ page contentType="text/html; charset=Windows-31J"%>
    <%@ taglib uri="/struts-html" prefix="html" %>
    <%@ taglib uri="/struts-bean" prefix="bean" %>
    <%@ taglib uri="/struts-logic" prefix="logic" %>
    <%@ taglib uri="/terasoluna-struts" prefix="ts" %>
    <%@ taglib uri="/terasoluna" prefix="t" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html:html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
    <title>ログオン画面</title>
    </head>
    
    <body>
    <table border="0" style="width:100%;">
        <tr>
            <td align="center">
                <html:img module="/" page="/image/terasoluna_logo.gif" />
            </td>
        </tr>
        <tr>
            <td align="center">
                <h2>
                    ログオン画面
                </h2>
            </td>
        </tr>
    </table>
    
    <!-- ここから -->
    <html:errors />
    <!-- ここまで -->
    
    <ts:form action="/logon/logonBL">
    <table border="0" align="center">
      <tr>
        <td>
          UserId:
        </td>
        <td>
          <html:text property="userId"/>
        </td>
        <td>
          <ts:submit value="ログオン"/>
        </td>
      </tr>
    </table>
    </ts:form>
    </body>
    </html:html>
    

(2) メッセージリソースファイルの確認

入力チェックのエラーメッセージを確認する。

  1. “terasoluna-spring-thin-blank\sources\application-messages.properties”を開き、以下のメッセージが設定されていることを確認する。
    errors.required={0}は入力必須項目です.
    errors.alphaNumericString={0}には半角英数字で入力してください.
    errors.maxlength={0}には{1}文字以下で入力してください.
    

(3) メッセージリソースファイルの編集

入力チェックのエラーメッセージで利用する項目名を設定する。

  1. “terasoluna-spring-thin-blank\sources\application-messages.properties”を開き、以下のメッセージを追加する。
    logon.userId=UserId
    

(4) バリデーション設定ファイルの編集

入力チェックの定義を設定する。

  1. “terasoluna-spring-thin-blank\webapps\WEB-INF\logon\validation-logon.xml”を開き、以下の箇所に設定を追加する。
    <form-validation>
    
        <formset>
    
          <!-- ログオン機能確認 -->
          <form name="/logon/logonBL">
            <field property="userId"
                depends="required,alphaNumericString,maxlength">
              <arg key="logon.userId" position="0"/>
              <arg key="${var:maxlength}" name="maxlength"
                   resource="false" position="1"/>
              <var>
                <var-name>maxlength</var-name>
                <var-value>10</var-value>
              </var>
            </field>
          </form>
          
        </formset>
        
    </form-validation>
    

入力チェックはアクションパスごとに定義する。
<field>要素のproperty属性に、チェック対象となるフォームの属性を設定し、depends属性に利用するルールを設定する。
今回利用するルールは以下の通りである。

ルール説明
required必須チェック
alphaNumericString半角英数字チェック
maxlength最大文字数チェック

<arg>要素は(2)で確認したメッセージのプレースホルダで置き換える文字列を表す。

(5) Struts設定ファイルの編集

入力チェックを実施する設定をアクション設定に追加する。

  1. “terasoluna-spring-thin-blank\webapps\WEB-INF\logon\struts-logon-config.xml”を開き、以下のように修正する。
    <!-- ======================================== アクションマッピング定義 -->
      <action-mappings type="jp.terasoluna.fw.web.struts.action.ActionMappingEx">
    
        ・・・略・・・
        
        <!-- ログオン処理用アクション -->
        <action path="/logon/logonBL"
                name="_logonForm" scope="session"
                validate="true" input="/logon/logoff.do">
            <forward name="success" path="/logon/menuSCR.do" />
        </action>
    
        ・・・略・・・
    
    

<action>要素のvalidate属性に“true”を設定することで、入力チェックが実施される。また、input属性には入力チェックエラー時の遷移先を指定する。


次項:2.8.2 登録画面の入力チェック設定

Copyright (C) 2009 NTT DATA CORPORATION