<%--
 * 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.
--%>

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <f:view>
            <h:form id="mainForm">
                <h:panelGrid columns="2">
                    <h:outputLabel for="txtInfo" value="Bean-value:"/>
                    <h:outputText id="txtInfo" value="#{facesDemoBean.text}"/>

                    <h:outputLabel for="txtAppProjctStage" value="App-Project stage:"/>
                    <h:outputText id="txtAppProjctStage" value="#{applicationProjectStageDemoBean.projectStageName}"/>

                    <h:outputLabel for="txtJsfProjctStage" value="Jsf-Project stage:"/>
                    <h:outputText id="txtJsfProjctStage" value="#{jsfProjectStageDemoBean.projectStageName}"/>

                    <h:commandButton value="send"/>
                </h:panelGrid>
                <h:messages globalOnly="true"/>
            </h:form>
        </f:view>
    </body>
</html>
