<?xml version="1.0"?>
<!--
    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 faces-config PUBLIC
  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd" >

<faces-config>

	<application>
		<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
	</application>

	<!-- managed beans of the simple hello world app -->
	<managed-bean>
		<managed-bean-name>helloWorldBacking</managed-bean-name>
		<managed-bean-class>
			${package}.HelloWorldBacking
		</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>

	<!-- navigation rules for helloWorld.jsp -->
	<navigation-rule>
		<from-view-id>/helloWorld.xhtml</from-view-id>
		<navigation-case>
			<from-outcome>success</from-outcome>
			<to-view-id>/page2.xhtml</to-view-id>
		</navigation-case>
	</navigation-rule>

	<!-- navigation rules for page2.jsp -->
	<navigation-rule>
		<from-view-id>/page2.xhtml</from-view-id>
		<navigation-case>
			<from-outcome>back</from-outcome>
			<to-view-id>/helloWorld.xhtml</to-view-id>
		</navigation-case>
	</navigation-rule>
</faces-config>
