<?xml version='1.0' encoding='UTF-8'?>
<chapter>
  <chapterinfo>
    <keywordset>
      <keyword>a4j:page</keyword>
    </keywordset>
  </chapterinfo>
      <table>
      <title>Component identification parameters </title>
      <tgroup cols="2">
        <thead>
          <row>
            <entry>Name</entry>
            <entry>Value</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>component-type</entry>
            <entry>org.ajax4jsf.components.Page</entry>
          </row>
          <row>
            <entry>component-family</entry>
            <entry>org.ajax4jsf.components.AjaxRegion</entry>
          </row>
          <row>
            <entry>component-class</entry>
            <entry>org.ajax4jsf.component.html.HtmlPage</entry>
          </row>
          <row>
            <entry>renderer-type</entry>
            <entry>org.ajax4jsf.components.AjaxPageRenderer</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
  
      <section>
            <title>Creating the component with a Page Tag</title>
            <para>
                  The <emphasis role="bold"><property>&lt;a4j:page&gt;</property></emphasis> should be the only child of <emphasis role="bold"><property>&lt;f:view&gt;</property></emphasis>:
            </para>
            <programlisting role="XML"><![CDATA[<f:view>
      <a4j:page>
            <f:facet name="head">
                  <!--Head Content-->
            </f:facet>
            <!--Page Content-->
      </a4j:page>
</f:view>]]></programlisting>
      </section>

      <section>
            <title>Creating the Component Dynamically Using Java</title>
            <para>
                  <emphasis role="bold">Example:</emphasis>
            </para>
            <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlPage;
...
HtmlPage myPage = new HtmlPage();
...]]></programlisting>
      </section>
      
      <section>
      <title>Details of usage</title>
      <para>
            The component solves the problem with MyFaces for early Ajax4Jsf versions: in MyFaces implementation the <emphasis role="bold"><property>&lt;f:view&gt;</property></emphasis> JSP tag doesn&apos;t get control for encoding contents during the <property>RENDER_RESPONSE</property> phase, 
            thus Ajax can&apos;t neiher get a control nor make a response. 
            The <emphasis role="bold"><property>&lt;a4j:page&gt;</property></emphasis> solves this problem by wrapping the Ajax updatable areas. 
            In the last versions of both frameworks the problem is successfully  fixed and no <emphasis role="bold"><property>&lt;a4j:page&gt;</property></emphasis> usage is required.
      </para>
      
    <para>
          The component uses <property>facet</property> <emphasis><property>&quot;head&quot;</property></emphasis> for defining the contents corresponding to the HTML HEAD.
          There is no need to use <emphasis><property>&quot;body&quot;</property></emphasis> facet in order to define first <property>body</property> section.
          The attribute <emphasis><property>&quot;format&quot;</property></emphasis> defines page layout format  for encoding DOCTYPE. 
          The attribute <emphasis><property>&quot;pageTitle&quot;</property></emphasis> is  rendered as <property>title</property> section.
    </para>
                 
                  <para>
                        According to the described above, the component defined at page as following
                  </para>
                  <programlisting role="XML"><![CDATA[<a4j:page format="xhtml" pageTitle="myPage">
      <f:facet name="head">
            <!--Head Content here-->
      </f:facet>
      <!--Page Content Here-->
</a4j:page>]]></programlisting>
      
    <para id="exampl">
          will be rendered on a page as
    </para>
    <programlisting role="XML"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head> 
        <title>myPage</title>
        <!--Head Content here-->
    </head> 
    <body>
        <!--Page Content Here-->
    </body> 
</html>]]></programlisting>
  </section>
  
      <section>
            <title>Facets</title>
            <table>
                  <title>Facets</title>
                  <tgroup cols="2">
                        <thead>
                              <row>
                                    <entry>Facet name</entry>
                                    <entry>Description</entry>
                              </row>
                        </thead>
                        <tbody>
                              <row>
                                    <entry>head</entry>
                                    <entry>Defines a head content</entry>
                              </row>
                        </tbody>
                  </tgroup>
            </table>
      </section>
      
  <section>
    <title>Relevant resources links</title>
        <para>
              Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/page.jsf?c=page">AjaxPage page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
        </para>  	
  </section>
  
</chapter>
