<?xml version="1.0" encoding="UTF-8"?>
<!-- 
  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 PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>

	<include file="struts-empire.xml"></include>

    <!-- 
    <constant name="struts.devMode" value="true" />
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
     -->

	<!-- Configuration for the default package. -->
	<package name="sample" namespace="" extends="empire-default">

	    <!-- Action Mappings -->
		<action name="error" class="org.apache.empire.struts2.websample.web.actions.LoginAction" method="doInit">
			<result name="input">/jsp/login.jsp</result>
		</action>

		<action name="login" class="org.apache.empire.struts2.websample.web.actions.LoginAction" method="doInit">
			<result name="input">/jsp/login.jsp</result>
			<result name="success" type="redirectAction">employeeList!doInit</result>
		</action>
		
		<action name="employeeList" class="org.apache.empire.struts2.websample.web.actions.EmployeeListAction" method="doInit">
			<result name="search">/jsp/employeeSearch.jsp</result>
			<result name="list">/jsp/employeeList.jsp</result>
		</action>

		<action name="employeeDetail" class="org.apache.empire.struts2.websample.web.actions.EmployeeDetailAction" method="doLoad">
			<result name="input">/jsp/employeeDetails.jsp</result>
			<result name="return" type="redirectAction">employeeList!doList</result>
		</action>

	</package>
</struts>
