<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
    http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
  <form-beans>
    <form-bean name="guestbookEntry" type="example.GuestbookEntryForm"/>
  </form-beans>
    
  <action-mappings>
    <action
          path="/index"
          type="example.IndexAction">
      <forward name="success" path="/index.ftl"/>
    </action>

    <action
          path="/form"
          type="example.FormAction"
          name="guestbookEntry"
          scope="request"
          validate="false">
      <forward name="success" path="/form.ftl"/>
    </action>
    
    <action
          path="/add"
          type="example.AddAction"
          name="guestbookEntry"
          validate="true"
          scope="request"
          input="/form.do">
      <forward name="success" path="/add.ftl"/>
    </action>
    
  </action-mappings>

  <message-resources parameter="example.ApplicationResources"/>

</struts-config>