Struts と MySQL による Web アプリケーション(その 1)

今回は、前回のような一覧表を単に表示させるものではなく、実際に UI を用意してもう少しアプリケーションらしいものを作ってみようと思います。本記事では、これまでに作ったソース群をかなり流用しますので、まずそれを用意します。新たに CustomerSearch という動的 Web プロジェクトを作成してください。

流用するもの

MySQL のデータベーススキーマ

引き続き menudb スキーマを流用します。したがってデータの形式は変わりません。

web.xml
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  id="WebApp_ID" version="3.0">

  <display-name>CustomerSearch</display-name>

  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>jp.mydns.akanekodou.filter.EncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
    <init-param>
      <param-name>language</param-name>
      <param-value>ja</param-value>
    </init-param>
  </filter>

  <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

</web-app>
Javaソースコード

Customer.java

package jp.mydns.akanekodou.model;

public class Customer {
    private int id;
    private String name;
    private String phone;

    public Customer() { }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

一番最初に作ったものですね。もちろん、id を int 型から String 型に変えたものを使っても構いません。その際は getId と setId には修正が必要でしたね。

DaoUtil.java はお好みでお好きな方をお使いください。Commons DBCP を使いたいのであれば SettingUtil.javajdbc.properties も流用します。

CustomerList.java は今回は使いません。

index.jsp(ダミーページ)

<!doctype html>
<html>
<head>
  <title>Index Page</title>
</head>
<body>
  <% response.sendRedirect("search.jsp"); %>
</body>
</html>

新たに作成・修正するもの

CustomerDAO.java を修正します。InitAction.java に代えて SearchAction.java を作成します。さらに View 用の新たなページとして search.jsp (と search.css) を作成し、またフォームに対応する Bean である SearchActionForm.java を新たに作成します。これに伴って struts-config.xml も修正することになります。