<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.3//EN" "document-v13.dtd">
<document>
    <header>
        <title>Spring MVC</title>
        <abstract>&#26368;&#36817;AOP&#12420;&#12425;DI&#12392;&#12356;&#12358;&#35328;&#33865;&#12434;&#12424;&#12367;&#32819;&#12395;&#12375;&#12414;&#12377;&#12375;&#12289;&#26368;&#36817;Spring in Action&#12392;&#12356;&#12358;&#26412;&#12434;&#36023;&#12387;&#12390; &#35501;&#12435;&#12384;&#12398;&#12391;&#12377;&#12364;(&#12411;&#12435;&#12398;&#12388;&#12356;&#26368;&#36817;&#12300;&#38283;&#30330;&#32773;&#12494;&#12540;&#12488;&#12471;&#12522;&#12540;&#12474;
            Spring&#12301;&#12418;&#36023;&#12387;&#12383;)&#12289;&#12356;&#12388;&#12418;&#12398;&#12424;&#12358;&#12395;&#12377;&#12368;&#24536;&#12428;&#12385;&#12419;&#12358;&#12398;&#12391;&#12289;&#12371;&#12371;&#12395;&#12513;&#12514;&#12434;&#21462;&#12387;&#12390;&#12362;&#12371;&#12358;&#12392;&#24605;&#12356;&#12414;&#12377;&#12290; </abstract>
    </header>
    <body>
        <section>
            <title>&#12414;&#12378;&#12399;maven&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#20316;&#25104;</title>
            <ol>
                <li>
                    <p>maven genapp</p>
                    <p>&#12414;&#12378;&#12399;&#12362;&#27770;&#12414;&#12426;&#12398;&#12300;maven genapp&#12301;&#12391;&#12289;<link href="http://maven.apache.org/reference/plugins/genapp/templates.html">genapp&#12398;&#12486;&#12531;&#12503;&#12524;&#12540;&#12488;&#19968;&#35239;</link>&#12391;&#12289;&#12393;&#12428;&#12363;&#36855;&#12387;&#12383;&#12369;&#12428;&#12393;&#12289;
                        &#20170;&#22238;&#12399;struts&#12434;&#20351;&#12358;&#20104;&#23450;&#12364;&#12394;&#12356;&#12398;&#12391;&#12289;&#12424;&#12367;&#12431;&#12363;&#12426;&#12414;&#12379;&#12435;&#12364;&#12289;&#12300;web&#12301;&#12434;&#36984;&#12435;&#12391;&#12415;&#12383;&#12290;</p>
                </li>
                <li>project.properties&#12394;&#12393;&#12364;&#20986;&#26469;&#12390;&#12362;&#12426;&#12289;&#24464;&#12293;&#12395;&#22793;&#12360;&#12390;&#12356;&#12363;&#12394;&#12369;&#12428;&#12400;&#12356;&#12369;&#12394;&#12356;&#12391;&#12375;&#12423;&#12358;&#12290;&#12375;&#12363;&#12375;&#12289;project.xml&#12399;&#20197;&#21069;&#20351;&#12387;&#12383;&#12398;&#12434;&#23569;&#12293;&#22793;&#26356;&#12375;&#12390;&#12289;
                    &#20351;&#12387;&#12390;&#12289;&#19981;&#20855;&#21512;&#12364;&#12354;&#12387;&#12383;&#12425;&#12381;&#12398;&#12383;&#12403;&#12395;&#20462;&#27491;&#12377;&#12427;&#12371;&#12392;&#12395;&#12375;&#12414;&#12377;&#12290;&#12290; <source xml:space="preserve"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<project>
    <!-- the version of maven's project object model -->
    <pomVersion>3</pomVersion>
    <!-- a unique name for this project -->
    <id>kakeibo</id>
    <groupId>chikkun</groupId>
    <!-- a short but descriptive name for the project -->
    <name>cKakeibo</name>
    <!-- The version of the project under development, e.g.
       1.1, 1.2, 2.0-SNAPSHOT -->
    <currentVersion>1.0</currentVersion>
    <!-- the year the project started -->
    <inceptionYear>2005</inceptionYear>
    <package>com.chikkun.ckakeibo.*</package>
    <logo>/kakeibo.gif</logo>
    <description>web]]>&#12391;<![CDATA[kakeibo</description>
    <!-- a short description of what the project does -->
    <shortDescription>Money Management</shortDescription>
    <!-- the project home page -->
    <url>http://maven.apache.org/reference/plugins/examples/</url>
    <issueTrackingUrl>http://nagoya.apache.org/scarab/servlet/scarab/</issueTrackingUrl>
    <siteAddress>www.chikkun.com</siteAddress>
    <siteDirectory>/home/httpd/html/und/kakeibo</siteDirectory>
    <distributionDirectory>/home/httpd/html/und/kakeibo/builds/</distributionDirectory>
    <repository>
        <connection>scm:cvs:pserver:chikkun@www.chikkun.com:/home/und:ckakeibo</connection>
        <password>kazukun</password>
    </repository>
    <!-- any mailing lists for the project -->
    <mailingLists/>
    <!-- who the developers are for the project -->
    <developers/>
    <!-- jar files the project is dependent on -->
    <licenses>
        <license>
            <name>Chikkun Digitals </name>
            <url>http://www.chikkun.com </url>
            <distribution/>
            <comments/>
        </license>
    </licenses>
    <!-- details about the organization that 'owns' the project -->
    <organization>
        <name>Chikkun Digitals</name>
        <url>http://www.chikkun.com/</url>
        <logo>/penguin.gif</logo>
    </organization>
    <dependencies>
        <dependency>
            <id>junit</id>
            <version>3.8.1</version>
        </dependency>
        <dependency>
            <id>servletapi</id>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>cactus</groupId>
            <artifactId>cactus</artifactId>
            <version>13-1.7</version>
        </dependency>
        <dependency>
            <groupId>cactus</groupId>
            <artifactId>cactus-maven</artifactId>
            <version>1.7</version>
            <type>plugin</type>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.4</version>
            <properties>
                <war.bundle>true</war.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.5-dev</version>
            <properties>
                <war.bundle>true</war.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <version>1.7.3.3</version>
            <properties>
                <war.bundle>true</war.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>hibernate</groupId>
            <artifactId>hibernate</artifactId>
            <version>2.1.8</version>
            <properties>
                <war.bundle>true</war.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>hibernate</groupId>
            <artifactId>hibernate-tools</artifactId>
            <version>2.1.3</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>oro</groupId>
            <artifactId>oro</artifactId>
            <version>2.0.8</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>ehcache</groupId>
            <artifactId>ehcache</artifactId>
            <version>1.1</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>2.1</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
            <version>1.5.3</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>xdoclet</groupId>
            <artifactId>xdoclet-hibernate-module</artifactId>
            <version>1.2b4</version>
        </dependency>
        <dependency>
            <groupId>velocity-tools</groupId>
            <artifactId>velocity-tools</artifactId>
            <version>1.1</version>
            <properties>
                <war.bundle>true</war.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>1.1.4</version>
            <properties>
                <cactus.bundle>true</cactus.bundle>
                <war.bundle>true</war.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.6</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>commons-digester</groupId>
            <artifactId>commons-digester</artifactId>
            <version>1.6</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.1</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.0</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.2</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.2</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <!-- XDoclet dependencies -->
        <dependency>
            <groupId>xdoclet</groupId>
            <id>xdoclet</id>
            <version>1.2b4</version>
        </dependency>
        <dependency>
            <groupId>xdoclet</groupId>
            <artifactId>xdoclet-web-module</artifactId>
            <version>1.2b4</version>
        </dependency>
        <dependency>
            <groupId>xdoclet</groupId>
            <artifactId>xdoclet-ejb-module</artifactId>
            <version>1.2b4</version>
        </dependency>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.8</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>xdoclet</groupId>
            <artifactId>xjavadoc</artifactId>
            <version>1.0.2</version>
        </dependency>
        <dependency>
            <groupId>xdoclet</groupId>
            <artifactId>maven-xdoclet-plugin</artifactId>
            <version>1.2b4</version>
            <type>plugin</type>
        </dependency>
        <!-- HttpUnit dependencies -->
        <dependency>
            <groupId>httpunit</groupId>
            <artifactId>httpunit</artifactId>
            <version>1.5.4</version>
            <properties>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>jtidy</groupId>
            <artifactId>jtidy</artifactId>
            <version>4aug2000r7-dev</version>
            <properties>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>jaxen</groupId>
            <artifactId>jaxen</artifactId>
            <version>1.1-beta-6</version>
            <properties>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>exml</groupId>
            <artifactId>exml</artifactId>
            <version>7.0</version>
            <properties>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>dbunit</groupId>
            <artifactId>dbunit</artifactId>
            <version>2.1</version>
            <properties>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>dtdparser</groupId>&gt; <artifactId>dtdparser</artifactId>&gt; <version>1.21</version>
            <properties>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>rhino</groupId>&gt; <artifactId>js</artifactId>&gt; <version>1.5R4.1</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>checkstyle</groupId>
            <artifactId>checkstyle-optional</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>odmg</groupId>
            <artifactId>odmg</artifactId>
            <version>3.0</version>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
        <dependency>
            <groupId>springframework</groupId>
            <artifactId>spring</artifactId>
            <version>1.2.1</version>
            <type>jar</type>
            <properties>
                <war.bundle>true</war.bundle>
                <cactus.bundle>true</cactus.bundle>
            </properties>
        </dependency>
    </dependencies>
    <build>
        <nagEmailAddress>chikkun@chikkun.com</nagEmailAddress>
        <sourceDirectory>src/java</sourceDirectory>
        <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
        <unitTest>
            <includes>
                <include>**/*Test.java</include>
                <include>**/Test*.java</include>
            </includes>
            <excludes>
                <exclude>**/NaughtyTest.java</exclude>
            </excludes>
        </unitTest>
        <resources>
            <resource>
                <directory>src/conf</directory>
                <includes>
                    <include>*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>
    <reports>
        <report>maven-junit-report-plugin</report>
        <report>maven-cactus-plugin</report>
        <report>maven-javadoc-plugin</report>
        <report>maven-checkstyle-plugin</report>
        <report>maven-jdepend-plugin</report>
        <report>maven-linkcheck-plugin</report>
        <report>maven-pmd-plugin</report>
        <report>maven-license-plugin</report>
        <report>maven-tasklist-plugin</report>
    </reports>
</project>
                    ]]></source>
                </li>
                <li>&#12381;&#12375;&#12390;&#12289;maven eclipse&#12391;eclipse&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12434;&#20316;&#25104;&#12375;&#12390;&#12289;eclipse&#12391;&#12452;&#12531;&#12509;&#12540;&#12488;&#12375;&#12414;&#12377;&#12290;</li>
            </ol>
        </section>
        <section>
            <title>Hello World</title>
            <p>&#12362;&#27770;&#12414;&#12426;&#12398;&#12300;Hello World&#12301;&#12391;&#12486;&#12473;&#12488;&#12375;&#12390;&#12415;&#12424;&#12358;</p>
            <ol>
                <li>web.xml <source xml:space="preserve"><![CDATA[
<?xml version="1.0" encoding="Windows-31J"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>cKakeibo</display-name>
    <description> Kakeibo System created by Chikkun</description>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <description>character encoding</description>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>Windows-31J</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
        <listener-class> org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>kakeibo</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>velocity</servlet-name>
        <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>
        <init-param>
            <param-name>org.apache.velocity.toolbox</param-name>
            <param-value>/WEB-INF/toolbox.xml</param-value>
        </init-param>
        <init-param>
            <param-name>org.apache.velocity.properties</param-name>
            <param-value>/WEB-INF/velocity.properties</param-value>
        </init-param>
        <load-on-startup>10</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>kakeibo</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>velocity</servlet-name>
        <url-pattern>*.vm</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.vm</welcome-file>
    </welcome-file-list>
</web-app>

                    ]]></source>
                </li>
                <li>
                    Controller&#12398;&#20316;&#25104;(HelloWorldController)
                    <source xml:space="preserve"><![CDATA[

/*
 * ]]>&#20316;&#25104;&#26085;<![CDATA[: 2005/08/03
 *
 */
package com.chikkun.kakeibo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class HelloWorldController implements Controller{

  private String greeting;
  
  public void setGreeting(String greeting) {
    this.greeting = greeting;
  }


  public ModelAndView handleRequest (HttpServletRequest request, HttpServletResponse response) throws Exception {
    return new ModelAndView("helloWorld", "message", greeting);
  }
}

                    ]]></source>                    
                </li>
                <li>
                    configure kakeibo-servlet.xml(for velocity, HelloWorldController)
                    <source xml:space="preserve"><![CDATA[

<?xml version="1.0" encoding="Windows-31J"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
   "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean name="/helloWorld.html" class="com.chikkun.kakeibo.HelloWorldController">
        <property name="greeting">
            <value>Hello World, My First Experience with Spring!!</value>
        </property>
    </bean>
    <bean id="velocityConfigurer"
        class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
        <property name="resourceLoaderPath">
            <value>WEB-INF/templates/</value>
        </property>
        <property name="velocityProperties">
            <props>
                <prop key="directive.foreach.counter.name">loopCoounter</prop>
                <prop key="directive.foreach.counter.initial.value">0</prop>
            </props>
        </property>
    </bean>
    <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="suffix">
            <value>.vm</value>
        </property>
        <property name="exposeRequestAttributes">
            <value>true</value>
        </property>
        <property name="exposeSessionAttributes">
            <value>true</value>
        </property>
    </bean>
</beans>

                    ]]></source>
                </li>
            </ol>
        </section>
    </body>
</document>