C:\russ\dev\JSFAction\web\hello.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<f:view>
<html>
  <head>
    <title> JSF in Action - Hello, World! </title>
  </head>
  <body>
    <h:form id="welcomeForm">
      <h:outputText id="welcomeOutput"
                    value="Welcome to JavaServer Faces!"
                    style="font-family: Ariel, sans-serif;
                            font-size: 24;
                            color: green;" />
      <p>
        <h:message id="errors" for="helloInput" style="color: red" />
      </p>
      <p>
        <h:outputLabel for="helloInput">
          <h:outputText id="helloInputLabel"
                        value="Enter number of controls to display" />
        </h:outputLabel>
        <h:inputText id="helloInput" value="#{helloBean.numControls}"
                      required="true">
          <f:validateLongRange minimum="1" maximum="500" />
        </h:inputText>
      </p>
      <p>
        <h:panelGrid id="controlPanel"
                      binding="#{helloBean.controlPanel}"
                      columns="20"
                      border="1"
                      cellspacing="0" />
      </p>
      <h:commandButton id="redisplayCommand"
                        type="submit"
                        value="Redisplay"
                        actionListener="#{helloBean.addControls}" />
      <h:commandButton id="goodbyeCommand"
                        type="submit"
                        value="Goodbye"
                        action="#{helloBean.goodbye}"
                        immediate="true" />
    </h:form>
  </body>
</html>
</f:view>
<!-- vim: set tabstop=2 shiftwidth=2 noexpandtab: -->