目次 > 第2章 Server(Web)版チュートリアル >  2.6 登録処理 > 2.6.1 アクションフォームクラスと画面の作成

2.6.1 アクションフォームクラスと画面の作成

本項では、「登録画面」および「結果画面」と、「登録画面」にて入力される「ID」、「名前」、「年齢」、「生年月日」を格納するアクションフォームクラスを作成する。
アクションフォームクラスについては「2.4 ログオン/ログオフ 2.4.1 アクションフォームクラスの作成と設定」を参照のこと。

手順

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

(1) アクションフォームクラスの作成

  1. “terasoluna-spring-thin-blank\sources”を右クリックする。
  2. 「新規」→「クラス」を選択する。
  3. 以下の通り入力し、「終了」ボタンを押下する。
    • パッケージ:jp.terasoluna.thin.tutorial.web.usermanager.form
    • 名前:UserManagerForm
    • スーパークラス:jp.terasoluna.fw.web.struts.form.ValidatorActionFormEx
  4. 生成されたUserManagerFormクラスを以下のように編集する。
    package jp.terasoluna.thin.tutorial.web.usermanager.form;
    
    import jp.terasoluna.fw.web.struts.form.ValidatorActionFormEx;
    
    /**
     * ユーザー管理業務で使用するアクションフォーム。
     * 
     */
    public class UserManagerForm extends ValidatorActionFormEx {
    
        /**
         * シリアルバージョンID。
         */
        private static final long serialVersionUID = 1L;
    
        /**
         * ID。
         */
        private Long id = null;
        
        /**
         * 名前。
         */
        private String name = null;
        
        /**
         * 年齢。
         */
        private String age = null;
        
        /**
         * 生年月日。
         */
        private String birth = null;
        
        /**
         * IDを返却する。
         * 
         * @return 保持するID
         */
        public Long getId() {
            return id;
        }
    
        /**
         * IDを設定する。
         * 
         * @param id ID
         */
        public void setId(Long id) {
            this.id = id;
        }
    
        /**
         * 名前を返却する。
         * 
         * @return 保持する名前
         */
        public String getName() {
            return name;
        }
    
        /**
         * 名前を設定する。
         * 
         * @param name 名前
         */
        public void setName(String name) {
            this.name = name;
        }
    
        /**
         * 年齢を返却する。
         * 
         * @return 保持する年齢
         */
        public String getAge() {
            return age;
        }
    
        /**
         * 年齢を設定する。
         * 
         * @param age 年齢
         */
        public void setAge(String age) {
            this.age = age;
        }
    
        /**
         * 生年月日を返却する。
         * 
         * @return 保持する生年月日
         */
        public String getBirth() {
            return birth;
        }
    
        /**
         * 生年月日を設定する。
         * 
         * @param birth 生年月日
         */
        public void setBirth(String birth) {
            this.birth = birth;
        }
    }
    
    

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

生成したアクションフォームクラスをStruts設定ファイルに設定する。

  1. “terasoluna-spring-thin-blank\webapps\WEB-INF\userManager\struts-userManager-config.xml”を開き、以下の箇所にアクションフォームを設定する。
    <!-- ======================================== フォームビーン定義 -->
      <form-beans>
    
        <!-- ユーザ管理用アクションフォーム -->
        <form-bean name="_userManagerForm"
                   type="jp.terasoluna.thin.tutorial.web.usermanager.form.UserManagerForm" />
    
      </form-beans>
    
    

(3) 登録画面の編集

「登録画面」に入力フォームを追加する。

  1. “terasoluna-spring-thin-blank\webapps\userManager\insert.jsp”を開き、以下のように編集する。
    <%@ 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>
    
    <!-- ここから --->
    <ts:form action="/userManager/insertBL">
    
    <fieldset style="border:2pt solid black;padding:20px;width:100%;">
        <legend style="font-weight:bold;">
          登録情報入力
        </legend><p>
        <table border="0" frame="box">
            <tr>
                <td valign="top">
                    <table frame="box">
                        <tr>
                            <td align="center" width="50">
                                ID
                            </td>
                            <td width="200">
                                <html:text name="_userManagerForm" property="id" maxlength="10" />
                                <br><span style="font-size:xx-small; color:red">(必須入力,数字のみ10桁以内))</span>
                            </td>
                        </tr>
                        <tr>
                            <td align="center" width="50">
                                NAME
                            </td>
                            <td width="200">
                                <html:text name="_userManagerForm" property="name" maxlength="20" />
                                <br><span style="font-size:xx-small; color:red">(必須入力,20桁以内))</span>
                            </td>
                        </tr>
                        <tr>
                            <td align="center" width="50">
                                AGE
                            </td>
                            <td width="200">
                                <html:text name="_userManagerForm" property="age" maxlength="3" />
                                <br><span style="font-size:xx-small; color:red">(必須入力,数字のみ3桁以内))</span>
                            </td>
                        </tr>
                        <tr>
                            <td align="center" width="50">
                                BIRTH
                            </td>
                            <td width="200">
                                <html:text name="_userManagerForm" property="birth" maxlength="10" />
                                <br><span style="font-size:xx-small; color:red">(yyyy/MM/dd形式))</span>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>
                    <ts:submit value="登録" />
                </td>
            </tr>
        </table>
    </fieldset>
    
    <hr>
    
    <ts:link page="/logon/menuSCR.do">メニュー</ts:link>
    
    </ts:form>
    <!-- ここまで -->
    </body>
    </html:html>
    

(4) 結果画面の作成

  1. “terasoluna-spring-thin-blank\webapps\userManager”に、「結果画面」の“result.jsp”を作成し、以下のように編集する。
    <%@ 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>
        <tr>
            <td align="center">
    
            </td>
        </tr>
    </table>
    
    <br>
    <ts:link action="/logon/menuSCR.do">メニュー</ts:link>
    </body>
    </html:html>
    

次項:2.6.2 入出力クラスの作成と設定

Copyright (C) 2009 NTT DATA CORPORATION