You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bu...@apache.org on 2014/02/06 02:32:15 UTC

svn commit: r896573 [3/4] - in /websites/staging/myfaces/trunk/content: ./ wiki/ wiki/core/ wiki/core/committer-and-pmc-guide/ wiki/core/committer-and-pmc-guide/myfaces-project-management/ wiki/core/user-guide/ wiki/core/user-guide/configuration-of-spe...

Modified: websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/displaying-errors---infos---warnings-in-jsf-pages.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/displaying-errors---infos---warnings-in-jsf-pages.html (original)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/displaying-errors---infos---warnings-in-jsf-pages.html Thu Feb  6 01:32:14 2014
@@ -84,7 +84,7 @@
     </div>
     <div id="body_column">
       <div>
-      <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/">Jsf-and-myfaces-howtos</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings.html">Managing Errors - Infos - Warnings</a></p>
+      <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos.html">JSF and MyFaces Howtos</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings.html">Managing Errors - Infos - Warnings</a></p>
       <h2>Displaying Errors - Infos - Warnings in JSF pages</h2>
       <div id="content" class="grid_16"><div class="section-content"><p>One common question about JSF is how to manage messages of various
 types, which are generated by JSF components and backing beans. This
@@ -166,77 +166,61 @@ and sub-class all backing beans from it.
 Creator's 1.0 manages backing beans and our methods are adopted from this.
 For severity our base class has two methods as below for INFO.</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-   protected void setInfoMessage(String summary) {</p>
-<div class="codehilite"><pre><span class="n">getFacesContext</span><span class="p">().</span><span class="n">addMessage</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="n">new</span>
-</pre></div>
+<div class="codehilite"><pre><span class="kd">protected</span> <span class="kt">void</span> <span class="nf">setInfoMessage</span><span class="o">(</span><span class="n">String</span> <span class="n">summary</span><span class="o">)</span> <span class="o">{</span>
 
+    <span class="n">getFacesContext</span><span class="o">().</span><span class="na">addMessage</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="k">new</span>
+    <span class="n">FacesMessage</span><span class="o">(</span><span class="n">FacesMessage</span><span class="o">.</span><span class="na">SEVERITY_INFO</span><span class="o">,</span> <span class="n">summary</span><span class="o">,</span> <span class="kc">null</span><span class="o">));</span>
 
-<p>FacesMessage(FacesMessage.SEVERITY_INFO, summary, null));</p>
-<div class="codehilite"><pre><span class="p">}</span>
+<span class="o">}</span>
 
+<span class="kd">protected</span> <span class="kt">void</span> <span class="nf">setInfoMessage</span><span class="o">(</span><span class="n">UIComponent</span> <span class="n">component</span><span class="o">,</span> <span class="n">String</span> <span class="n">summary</span><span class="o">)</span> <span class="o">{</span>
 
+    <span class="n">getFacesContext</span><span class="o">().</span><span class="na">addMessage</span><span class="o">(</span><span class="n">component</span><span class="o">.</span><span class="na">getClientId</span><span class="o">(</span><span class="n">getFacesContext</span><span class="o">()),</span> <span class="k">new</span>
+    <span class="n">FacesMessage</span><span class="o">(</span><span class="n">FacesMessage</span><span class="o">.</span><span class="na">SEVERITY_INFO</span><span class="o">,</span> <span class="n">summary</span><span class="o">,</span> <span class="kc">null</span><span class="o">));</span>
 
-<span class="n">protected</span> <span class="n">void</span> <span class="n">setInfoMessage</span><span class="p">(</span><span class="n">UIComponent</span> <span class="n">component</span><span class="p">,</span> <span class="n">String</span> <span class="n">summary</span><span class="p">)</span> <span class="p">{</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<p>getFacesContext().addMessage(component.getClientId(getFacesContext()), new
-FacesMessage(FacesMessage.SEVERITY_INFO, summary, null));</p>
-<div class="codehilite"><pre><span class="p">}</span>
-</pre></div>
-
-
-<p>]
-]&gt;</ac:plain-text-body></ac:macro></p>
 <p>The first method enqueues a global message with INFO severity while the
 second method associates the INFO message with a component (most probably
 from a custom (page-specific) validation. We also have a base class for all
 our validators (which perform page-specific validation when necessary)
 which uses the following protected method for raising messages</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-    protected static void invalidateInput(UIInput uii, String message) {</p>
-<div class="codehilite"><pre><span class="n">uii</span><span class="p">.</span><span class="n">setValid</span><span class="p">(</span><span class="n">false</span><span class="p">);</span>
+<div class="codehilite"><pre><span class="kd">protected</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">invalidateInput</span><span class="o">(</span><span class="n">UIInput</span> <span class="n">uii</span><span class="o">,</span> <span class="n">String</span> <span class="n">message</span><span class="o">)</span> <span class="o">{</span>
 
-<span class="n">FacesMessage</span> <span class="n">facesMessage</span> <span class="p">=</span> <span class="n">new</span>
-</pre></div>
+    <span class="n">uii</span><span class="o">.</span><span class="na">setValid</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
 
+    <span class="n">FacesMessage</span> <span class="n">facesMessage</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FacesMessage</span><span class="o">(</span><span class="n">FacesMessage</span><span class="o">.</span><span class="na">SEVERITY_WARN</span><span class="o">,</span> <span class="n">message</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>
 
-<p>FacesMessage(FacesMessage.SEVERITY_WARN, message, null);</p>
-<div class="codehilite"><pre><span class="n">throw</span> <span class="n">new</span> <span class="n">ValidatorException</span><span class="p">(</span><span class="n">facesMessage</span><span class="p">);</span>
+    <span class="k">throw</span> <span class="k">new</span> <span class="nf">ValidatorException</span><span class="o">(</span><span class="n">facesMessage</span><span class="o">);</span>
 
-<span class="p">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<p>]
-]&gt;</ac:plain-text-body></ac:macro>
 <p>Note that we only raise messages with WARN severity as our requirements
 preclude displaying anything which looks or smells like an error to our
-users.  </p></p>
+users.  </p>
+
 <p>As all our backing beans have these methods accesible to them, we can
 simply add appropriate calls to enqueue messages in our business logic such
 as</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-        setInfoMessage(Messages.getString("MANIFEST_SAVED"));</p>
-<p>or</p>
-<div class="codehilite"><pre>    <span class="n">setWarnMessage</span><span class="p">(</span><span class="n">Messages</span><span class="p">.</span><span class="n">getString</span><span class="p">(</span>&quot;<span class="n">UPDATE_DATABASE_ERROR</span>&quot;<span class="p">));</span>
-</pre></div>
+<div class="codehilite"><pre>    <span class="n">setInfoMessage</span><span class="o">(</span><span class="n">Messages</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">&quot;MANIFEST_SAVED&quot;</span><span class="o">));</span>
 
+<span class="n">or</span>
 
-<p>or</p>
-<div class="codehilite"><pre>    <span class="n">setInfoMessage</span><span class="p">(</span><span class="n">Messages</span><span class="p">.</span><span class="n">getString</span><span class="p">(</span>&quot;<span class="n">STORAGE_TRANSFER_ONE</span>&quot;<span class="p">,</span> <span class="n">new</span>
+    <span class="nf">setWarnMessage</span><span class="o">(</span><span class="n">Messages</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">&quot;UPDATE_DATABASE_ERROR&quot;</span><span class="o">));</span>
+
+<span class="n">or</span>
+
+    <span class="nf">setInfoMessage</span><span class="o">(</span><span class="n">Messages</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">&quot;STORAGE_TRANSFER_ONE&quot;</span><span class="o">,</span> <span class="k">new</span>
+        <span class="n">Integer</span><span class="o">(</span><span class="n">count</span><span class="o">),</span> <span class="n">fromUnit</span><span class="o">.</span><span class="na">getName</span><span class="o">(),</span> <span class="n">toUnit</span><span class="o">.</span><span class="na">getName</span><span class="o">()));</span>
 </pre></div>
 
 
-<p>Integer(count), fromUnit.getName(), toUnit.getName()));
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
 <p>where the Messages class provides access to a messages properties file
 and performs standard parameter replacement using Apache's Common Lang
 StringUtils.</p>
@@ -248,27 +232,27 @@ consistent look and feel for all message
 each page which handles all messages which are not component specific. Our
 PageMessages.jspf is as follows:</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-&lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%&gt;
-&lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%&gt;
-&lt;%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%&gt;</p>
-<p><h:panelGrid styleClass="group" columns="2" cellpadding="2" cellspacing="0"
-width="100%" columnClasses="buttonCol, leftAlignCol"
-rowClasses="vertAlignTop" rendered="#{! empty
-facesContext.maximumSeverity}" >
-    <h:graphicImage value="#{PageMessages.messageImage}" style="float:
-left; vertical-align: top;" />     <br />
-    <h:panelGrid columns="1" cellpadding="2" cellspacing="2"
-columnClasses="leftAlignCol" rowClasses="vertAlignTop" width="100%"> <br />
-        <h:outputText value="#{PageMessages.messageHeader}"
-escape="false" rendered="#{PageMessages.renderMessage}"/>
-        <h:messages errorClass="errorMessage" infoClass="infoMessage"
-layout="table" globalOnly="true" showDetail="false" showSummary="true"/>
-    </h:panelGrid>
-</h:panelGrid>
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="err">&lt;</span>%@ taglib uri=&quot;http://java.sun.com/jsf/html&quot; prefix=&quot;h&quot;%&gt;
+<span class="err">&lt;</span>%@ taglib uri=&quot;http://java.sun.com/jsf/core&quot; prefix=&quot;f&quot;%&gt;
+<span class="err">&lt;</span>%@ taglib uri=&quot;http://myfaces.apache.org/tomahawk&quot; prefix=&quot;t&quot;%&gt;
+
+<span class="nt">&lt;h:panelGrid</span> <span class="na">styleClass=</span><span class="s">&quot;group&quot;</span> <span class="na">columns=</span><span class="s">&quot;2&quot;</span> <span class="na">cellpadding=</span><span class="s">&quot;2&quot;</span> <span class="na">cellspacing=</span><span class="s">&quot;0&quot;</span>
+<span class="na">width=</span><span class="s">&quot;100%&quot;</span> <span class="na">columnClasses=</span><span class="s">&quot;buttonCol, leftAlignCol&quot;</span>
+<span class="na">rowClasses=</span><span class="s">&quot;vertAlignTop&quot;</span> <span class="na">rendered=</span><span class="s">&quot;#{! empty</span>
+<span class="s">facesContext.maximumSeverity}&quot;</span> <span class="nt">&gt;</span>
+    <span class="nt">&lt;h:graphicImage</span> <span class="na">value=</span><span class="s">&quot;#{PageMessages.messageImage}&quot;</span> <span class="na">style=</span><span class="s">&quot;float:</span>
+<span class="s">left; vertical-align: top;&quot;</span> <span class="nt">/&gt;</span>       
+    <span class="nt">&lt;h:panelGrid</span> <span class="na">columns=</span><span class="s">&quot;1&quot;</span> <span class="na">cellpadding=</span><span class="s">&quot;2&quot;</span> <span class="na">cellspacing=</span><span class="s">&quot;2&quot;</span>
+<span class="na">columnClasses=</span><span class="s">&quot;leftAlignCol&quot;</span> <span class="na">rowClasses=</span><span class="s">&quot;vertAlignTop&quot;</span> <span class="na">width=</span><span class="s">&quot;100%&quot;</span><span class="nt">&gt;</span>   
+        <span class="nt">&lt;h:outputText</span> <span class="na">value=</span><span class="s">&quot;#{PageMessages.messageHeader}&quot;</span>
+<span class="na">escape=</span><span class="s">&quot;false&quot;</span> <span class="na">rendered=</span><span class="s">&quot;#{PageMessages.renderMessage}&quot;</span><span class="nt">/&gt;</span>
+        <span class="nt">&lt;h:messages</span> <span class="na">errorClass=</span><span class="s">&quot;errorMessage&quot;</span> <span class="na">infoClass=</span><span class="s">&quot;infoMessage&quot;</span>
+<span class="na">layout=</span><span class="s">&quot;table&quot;</span> <span class="na">globalOnly=</span><span class="s">&quot;true&quot;</span> <span class="na">showDetail=</span><span class="s">&quot;false&quot;</span> <span class="na">showSummary=</span><span class="s">&quot;true&quot;</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;/h:panelGrid&gt;</span>
+<span class="nt">&lt;/h:panelGrid&gt;</span>
+</pre></div>
+
+
 <p>The messages are only displayed only if one or more messages are
 enqueued by conditionally rendering the table using
 <code>rendered=&quot;#{! empty facesContext.maximumSeverity}&quot;</code>
@@ -281,84 +265,82 @@ global messages are displayed in table f
 style="text-decoration: underline;">request scope</span> to control the
 JSPF. The code for this is as follows:</p>
 
-<p><ac:macro ac:name="code"><ac:parameter
-ac:name="title">PageMessages.java</ac:parameter><ac:plain-text-body>&lt;![CDATA[
-import Messages;</p>
-<p>import org.apache.commons.lang.StringUtils;</p>
-<p>import javax.faces.application.FacesMessage;
-import javax.faces.application.FacesMessage.Severity;</p>
-<p>public class PageMessages extends AbstractUIBean {
-    private static final long serialVersionUID = -6479897299239746841L;
-    private static final String BEAN_NAME = PageMessages.class.getName();
-    private String messageHeader;
-    private String messageImage;
-    private Severity severityLevel;</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">PageMessages</span><span class="p">()</span> <span class="p">{</span>
-<span class="n">messageHeader</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span>
+<p>PageMessages.java</p>
+<div class="codehilite"><pre><span class="kn">import</span> <span class="nn">Messages</span><span class="o">;</span>
 
-<span class="o">//</span> <span class="n">See</span> <span class="k">if</span> <span class="n">there</span> <span class="n">are</span> <span class="n">messages</span> <span class="n">queued</span> <span class="k">for</span> <span class="n">the</span> <span class="n">page</span>
-<span class="n">severityLevel</span> <span class="p">=</span> <span class="n">getFacesContext</span><span class="p">().</span><span class="n">getMaximumSeverity</span><span class="p">();</span>
+<span class="kn">import</span> <span class="nn">org.apache.commons.lang.StringUtils</span><span class="o">;</span>
 
-<span class="k">if</span> <span class="p">(</span><span class="n">null</span> !<span class="p">=</span> <span class="n">severityLevel</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">getLogger</span><span class="p">().</span><span class="n">debug</span><span class="p">(</span>&quot;<span class="n">Severity</span> <span class="n">Level</span> <span class="n">Trapped</span><span class="p">:</span> <span class="n">level</span> <span class="p">=</span> <span class="s">&#39;</span><span class="err">&quot; +</span>
-</pre></div>
+<span class="kn">import</span> <span class="nn">javax.faces.application.FacesMessage</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">javax.faces.application.FacesMessage.Severity</span><span class="o">;</span>
 
 
-<p>severityLevel.toString() + "'");</p>
-<div class="codehilite"><pre>    <span class="k">if</span> <span class="p">(</span><span class="n">severityLevel</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">FacesMessage</span><span class="p">.</span><span class="n">SEVERITY_ERROR</span><span class="p">))</span> <span class="p">{</span>
-    <span class="n">messageHeader</span> <span class="p">=</span> <span class="n">Messages</span><span class="p">.</span><span class="n">getString</span><span class="p">(</span>&quot;<span class="n">PAGE_MESSAGE_ERROR</span>&quot;<span class="p">);</span>
-    <span class="n">messageImage</span> <span class="p">=</span> &quot;<span class="n">resources</span><span class="o">/</span><span class="n">warning</span><span class="p">.</span><span class="n">gif</span>&quot;<span class="p">;</span>
-    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">severityLevel</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">FacesMessage</span><span class="p">.</span><span class="n">SEVERITY_INFO</span><span class="p">))</span> <span class="p">{</span>
-    <span class="n">messageHeader</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span>
-    <span class="n">messageImage</span> <span class="p">=</span> &quot;<span class="n">resources</span><span class="o">/</span><span class="n">information</span><span class="p">.</span><span class="n">gif</span>&quot;<span class="p">;</span>
-    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">severityLevel</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">FacesMessage</span><span class="p">.</span><span class="n">SEVERITY_WARN</span><span class="p">))</span> <span class="p">{</span>
-    <span class="n">messageHeader</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span>
-    <span class="n">messageImage</span> <span class="p">=</span> &quot;<span class="n">resources</span><span class="o">/</span><span class="n">warning</span><span class="p">.</span><span class="n">gif</span>&quot;<span class="p">;</span>
-    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">severityLevel</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">FacesMessage</span><span class="p">.</span><span class="n">SEVERITY_FATAL</span><span class="p">))</span> <span class="p">{</span>
-    <span class="n">messageHeader</span> <span class="p">=</span> <span class="n">Messages</span><span class="p">.</span><span class="n">getString</span><span class="p">(</span>&quot;<span class="n">PAGE_FATAL_ERROR</span>&quot;<span class="p">);</span>
-    <span class="n">messageImage</span> <span class="p">=</span> &quot;<span class="n">resources</span><span class="o">/</span><span class="n">stop</span><span class="p">.</span><span class="n">gif</span>&quot;<span class="p">;</span>
-    <span class="p">}</span>
-<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
-    <span class="n">getLogger</span><span class="p">().</span><span class="n">debug</span><span class="p">(</span>&quot;<span class="n">Severity</span> <span class="n">Level</span> <span class="n">Trapped</span><span class="p">:</span> <span class="n">level</span> <span class="p">=</span> <span class="s">&#39;null&#39;</span>&quot;<span class="p">);</span>
-<span class="p">}</span>
-<span class="p">}</span>
-
-<span class="n">public</span> <span class="n">Boolean</span> <span class="n">getRenderMessage</span><span class="p">()</span> <span class="p">{</span>
-<span class="k">return</span> <span class="n">new</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">StringUtils</span><span class="p">.</span><span class="n">isNotBlank</span><span class="p">(</span><span class="n">getMessageHeader</span><span class="p">()));</span>
-<span class="p">}</span>
-
-<span class="n">public</span> <span class="n">String</span> <span class="n">getBeanName</span><span class="p">()</span> <span class="p">{</span>
-<span class="k">return</span> <span class="n">BEAN_NAME</span><span class="p">;</span>
-<span class="p">}</span>
-
-<span class="n">public</span> <span class="n">String</span> <span class="n">getMessageHeader</span><span class="p">()</span> <span class="p">{</span>
-<span class="k">return</span> <span class="n">messageHeader</span><span class="p">;</span>
-<span class="p">}</span>
-
-<span class="n">public</span> <span class="n">String</span> <span class="n">getMessageImage</span><span class="p">()</span> <span class="p">{</span>
-<span class="k">return</span> <span class="n">messageImage</span><span class="p">;</span>
-<span class="p">}</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">PageMessages</span> <span class="kd">extends</span> <span class="n">AbstractUIBean</span> <span class="o">{</span>
+    <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="kt">long</span> <span class="n">serialVersionUID</span> <span class="o">=</span> <span class="o">-</span><span class="mi">6479897299239746841L</span><span class="o">;</span>
+    <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">BEAN_NAME</span> <span class="o">=</span> <span class="n">PageMessages</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getName</span><span class="o">();</span>
+    <span class="kd">private</span> <span class="n">String</span> <span class="n">messageHeader</span><span class="o">;</span>
+    <span class="kd">private</span> <span class="n">String</span> <span class="n">messageImage</span><span class="o">;</span>
+    <span class="kd">private</span> <span class="n">Severity</span> <span class="n">severityLevel</span><span class="o">;</span>
+
+    <span class="kd">public</span> <span class="nf">PageMessages</span><span class="o">()</span> <span class="o">{</span>
+        <span class="n">messageHeader</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
+
+        <span class="c1">// See if there are messages queued for the page</span>
+        <span class="n">severityLevel</span> <span class="o">=</span> <span class="n">getFacesContext</span><span class="o">().</span><span class="na">getMaximumSeverity</span><span class="o">();</span>
+
+        <span class="k">if</span> <span class="o">(</span><span class="kc">null</span> <span class="o">!=</span> <span class="n">severityLevel</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">getLogger</span><span class="o">().</span><span class="na">debug</span><span class="o">(</span><span class="s">&quot;Severity Level Trapped: level = &#39;&quot;</span> <span class="o">+</span>
+            <span class="n">severityLevel</span><span class="o">.</span><span class="na">toString</span><span class="o">()</span> <span class="o">+</span> <span class="s">&quot;&#39;&quot;</span><span class="o">);</span>
+
+            <span class="k">if</span> <span class="o">(</span><span class="n">severityLevel</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">FacesMessage</span><span class="o">.</span><span class="na">SEVERITY_ERROR</span><span class="o">))</span> <span class="o">{</span>
+            <span class="n">messageHeader</span> <span class="o">=</span> <span class="n">Messages</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">&quot;PAGE_MESSAGE_ERROR&quot;</span><span class="o">);</span>
+            <span class="n">messageImage</span> <span class="o">=</span> <span class="s">&quot;resources/warning.gif&quot;</span><span class="o">;</span>
+            <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="n">severityLevel</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">FacesMessage</span><span class="o">.</span><span class="na">SEVERITY_INFO</span><span class="o">))</span> <span class="o">{</span>
+            <span class="n">messageHeader</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
+            <span class="n">messageImage</span> <span class="o">=</span> <span class="s">&quot;resources/information.gif&quot;</span><span class="o">;</span>
+            <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="n">severityLevel</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">FacesMessage</span><span class="o">.</span><span class="na">SEVERITY_WARN</span><span class="o">))</span> <span class="o">{</span>
+            <span class="n">messageHeader</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
+            <span class="n">messageImage</span> <span class="o">=</span> <span class="s">&quot;resources/warning.gif&quot;</span><span class="o">;</span>
+            <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="n">severityLevel</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="n">FacesMessage</span><span class="o">.</span><span class="na">SEVERITY_FATAL</span><span class="o">))</span> <span class="o">{</span>
+            <span class="n">messageHeader</span> <span class="o">=</span> <span class="n">Messages</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">&quot;PAGE_FATAL_ERROR&quot;</span><span class="o">);</span>
+            <span class="n">messageImage</span> <span class="o">=</span> <span class="s">&quot;resources/stop.gif&quot;</span><span class="o">;</span>
+            <span class="o">}</span>
+        <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
+            <span class="n">getLogger</span><span class="o">().</span><span class="na">debug</span><span class="o">(</span><span class="s">&quot;Severity Level Trapped: level = &#39;null&#39;&quot;</span><span class="o">);</span>
+        <span class="o">}</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">Boolean</span> <span class="nf">getRenderMessage</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">new</span> <span class="nf">Boolean</span><span class="o">(</span><span class="n">StringUtils</span><span class="o">.</span><span class="na">isNotBlank</span><span class="o">(</span><span class="n">getMessageHeader</span><span class="o">()));</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">getBeanName</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="n">BEAN_NAME</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">getMessageHeader</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="n">messageHeader</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">getMessageImage</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="n">messageImage</span><span class="o">;</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<p>}
-]
-]&gt;</ac:plain-text-body></ac:macro>
 <p>Our backing bean extends our basic UI base classes which provides access
 to central logging etc. You can see that if a component has enqueued a
 message of ERROR we add a localized message at the top of the page which
 (we hope) gracefully moderates the user-impact of seeing the same form
-again with a bunch of annotations!</p></p>
+again with a bunch of annotations!</p>
+
 <p>The PageMessages.jspf is included into each JSP using the following
 code:</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-<f:subview id="messages">
-    <jsp:directive.include file="PageMessages.jspf" />
-</f:subview>
-]
-]&gt;</ac:plain-text-body></ac:macro></p></div></div>
+<div class="codehilite"><pre><span class="nt">&lt;f:subview</span> <span class="na">id=</span><span class="s">&quot;messages&quot;</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;jsp:directive.include</span> <span class="na">file=</span><span class="s">&quot;PageMessages.jspf&quot;</span> <span class="nt">/&gt;</span>
+<span class="nt">&lt;/f:subview&gt;</span>
+</pre></div></div></div>
       </div>
     </div>
     <div class="clear"></div>

Modified: websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/handling-server-errors.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/handling-server-errors.html (original)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/handling-server-errors.html Thu Feb  6 01:32:14 2014
@@ -84,7 +84,7 @@
     </div>
     <div id="body_column">
       <div>
-      <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/">Jsf-and-myfaces-howtos</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings.html">Managing Errors - Infos - Warnings</a></p>
+      <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos.html">JSF and MyFaces Howtos</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings.html">Managing Errors - Infos - Warnings</a></p>
       <h2>Handling Server Errors</h2>
       <div id="content" class="grid_16"><div class="section-content"><h2>Error handling for MyFaces Core 2.0 and later versions</h2>
 
@@ -94,80 +94,75 @@ javax.faces.context.ExceptionHandlerWrap
 exceptions. To do that, just create your custom class, an factory that
 wrap/override it and add the following into your faces-config.xml:</p>
 
-<p><ac:macro ac:name="code"><ac:parameter
-ac:name="title">faces-config.xml</ac:parameter><ac:plain-text-body>&lt;![CDATA[
-<faces-config xmlns="http://java.sun.com/xml/ns/javaee" 
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" 
-          version="2.0"></p>
-<div class="codehilite"><pre><span class="o">&lt;</span>!<span class="o">--</span> <span class="p">...</span> <span class="o">--&gt;</span>
-<span class="o">&lt;</span><span class="n">factory</span><span class="o">&gt;</span>
-<span class="o">&lt;</span>!<span class="o">--</span> <span class="p">...</span> <span class="o">--&gt;</span>
+<p>faces-config.xml</p>
+<div class="codehilite"><pre><span class="nt">&lt;faces-config</span> <span class="na">xmlns=</span><span class="s">&quot;http://java.sun.com/xml/ns/javaee&quot;</span> 
+          <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> 
+          <span class="na">xsi:schemaLocation=</span><span class="s">&quot;http://java.sun.com/xml/ns/javaee</span>
+<span class="s">http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd&quot;</span> 
+          <span class="na">version=</span><span class="s">&quot;2.0&quot;</span><span class="nt">&gt;</span>
+
+    <span class="c">&lt;!-- ... --&gt;</span>
+    <span class="nt">&lt;factory&gt;</span>
+    <span class="c">&lt;!-- ... --&gt;</span>
+
+<span class="nt">&lt;exception-handler-factory&gt;</span>org.apache.myfaces.context.ExceptionHandlerFactoryImpl<span class="nt">&lt;/exception-handler-factory&gt;</span>
+    <span class="c">&lt;!-- ... --&gt;</span>
+    <span class="nt">&lt;/factory&gt;</span>
+    <span class="c">&lt;!-- ... --&gt;</span>
+<span class="nt">&lt;/faces-config&gt;</span>
 </pre></div>
 
 
-<p><exception-handler-factory>org.apache.myfaces.context.ExceptionHandlerFactoryImpl</exception-handler-factory>
-    <!-- ... -->
-    </factory>
-    <!-- ... -->
-</faces-config>
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
 <p>This is an example of an ExceptionHandlerFactory, from myfaces code:</p>
 
-<p><ac:macro ac:name="code"><ac:parameter
-ac:name="title">ExceptionHandlerFactoryImpl.java</ac:parameter><ac:plain-text-body>&lt;![CDATA[
-public class ExceptionHandlerFactoryImpl extends ExceptionHandlerFactory
-{</p>
-<div class="codehilite"><pre><span class="p">@</span><span class="n">Override</span>
-<span class="n">public</span> <span class="n">ExceptionHandler</span> <span class="n">getExceptionHandler</span><span class="p">()</span>
-<span class="p">{</span>
-<span class="k">return</span> <span class="n">new</span> <span class="n">SwitchAjaxExceptionHandlerWrapperImpl</span><span class="p">(</span>
-    <span class="n">new</span> <span class="n">MyFacesExceptionHandlerWrapperImpl</span><span class="p">(</span><span class="n">new</span>
+<p>ExceptionHandlerFactoryImpl.java</p>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">ExceptionHandlerFactoryImpl</span> <span class="kd">extends</span> <span class="n">ExceptionHandlerFactory</span>
+<span class="o">{</span>
+
+    <span class="nd">@Override</span>
+    <span class="kd">public</span> <span class="n">ExceptionHandler</span> <span class="nf">getExceptionHandler</span><span class="o">()</span>
+    <span class="o">{</span>
+    <span class="k">return</span> <span class="k">new</span> <span class="nf">SwitchAjaxExceptionHandlerWrapperImpl</span><span class="o">(</span>
+        <span class="k">new</span> <span class="nf">MyFacesExceptionHandlerWrapperImpl</span><span class="o">(</span><span class="k">new</span>
+<span class="n">ExceptionHandlerImpl</span><span class="o">())</span> <span class="o">,</span> 
+        <span class="k">new</span> <span class="nf">AjaxExceptionHandlerImpl</span><span class="o">());</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<p>ExceptionHandlerImpl()) , 
-        new AjaxExceptionHandlerImpl());
-    }
-}
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
 <p>If you need a wrapper:</p>
 
-<p><ac:macro ac:name="code"><ac:parameter
-ac:name="title">ExceptionHandlerFactoryImpl.java</ac:parameter><ac:plain-text-body>&lt;![CDATA[
-public class ExceptionHandlerFactoryImpl extends ExceptionHandlerFactory
-{</p>
-<div class="codehilite"><pre><span class="p">@</span><span class="n">Override</span>
-<span class="n">public</span> <span class="n">ExceptionHandler</span> <span class="n">getExceptionHandler</span><span class="p">()</span>
-<span class="p">{</span>
-<span class="k">return</span> <span class="n">new</span>
+<p>ExceptionHandlerFactoryImpl.java</p>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">ExceptionHandlerFactoryImpl</span> <span class="kd">extends</span> <span class="n">ExceptionHandlerFactory</span>
+<span class="o">{</span>
+
+    <span class="nd">@Override</span>
+    <span class="kd">public</span> <span class="n">ExceptionHandler</span> <span class="nf">getExceptionHandler</span><span class="o">()</span>
+    <span class="o">{</span>
+    <span class="k">return</span> <span class="k">new</span>
+<span class="nf">CustomExceptionHandlerWrapper</span><span class="o">(</span><span class="n">getWrapped</span><span class="o">().</span><span class="na">getExceptionHandler</span><span class="o">());</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<p>CustomExceptionHandlerWrapper(getWrapped().getExceptionHandler());
-    }
-}
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
 <p>The most important method to override is
 <code>ExceptionHandler.handle()</code>. </p>
 
-<p><ac:macro ac:name="code"><ac:parameter
-ac:name="title">MyFacesExceptionHandlerWrapperImpl.java</ac:parameter><ac:plain-text-body>&lt;![CDATA[
-public class MyFacesExceptionHandlerWrapperImpl extends
-ExceptionHandlerWrapper
-{
-    //...
-    public void handle() throws FacesException
-    {
-       //... some custom code goes here ...
-    }
-}
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<p>MyFacesExceptionHandlerWrapperImpl.java</p>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MyFacesExceptionHandlerWrapperImpl</span> <span class="kd">extends</span>
+<span class="n">ExceptionHandlerWrapper</span>
+<span class="o">{</span>
+    <span class="c1">//...</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">handle</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">FacesException</span>
+    <span class="o">{</span>
+       <span class="c1">//... some custom code goes here ...</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
 <p>Take a look at MyFaces Core source code, to know in detail how
 ExceptionHandler implementations works.</p>
 
@@ -179,35 +174,34 @@ disabled on Production environments unle
 Don't forget to provide your custom error page in this scenario, to prevent
 show more information than necessary.</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-  <context-param>
-    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
-    <param-value>true</param-value>
-  </context-param></p>
-<p><!-- if you want to use a different resource template file than 
-       "META-INF/rsc/myfaces-dev-error.xml" this param let you configure
-       it. (since 1.2.4-SNAPSHOT and 1.1.6-SNAPSHOT)-->
-  <context-param>
-    <param-name>org.apache.myfaces.ERROR_TEMPLATE_RESOURCE</param-name>
-    <param-value>META-INF/rsc/custom-dev-error.xml</param-value>
-  </context-param>
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt">&lt;context-param&gt;</span>
+    <span class="nt">&lt;param-name&gt;</span>org.apache.myfaces.ERROR_HANDLING<span class="nt">&lt;/param-name&gt;</span>
+    <span class="nt">&lt;param-value&gt;</span>true<span class="nt">&lt;/param-value&gt;</span>
+<span class="nt">&lt;/context-param&gt;</span>
+
+<span class="c">&lt;!-- if you want to use a different resource template file than </span>
+<span class="c">   &quot;META-INF/rsc/myfaces-dev-error.xml&quot; this param let you configure</span>
+<span class="c">   it. (since 1.2.4-SNAPSHOT and 1.1.6-SNAPSHOT)--&gt;</span>
+<span class="nt">&lt;context-param&gt;</span>
+    <span class="nt">&lt;param-name&gt;</span>org.apache.myfaces.ERROR_TEMPLATE_RESOURCE<span class="nt">&lt;/param-name&gt;</span>
+    <span class="nt">&lt;param-value&gt;</span>META-INF/rsc/custom-dev-error.xml<span class="nt">&lt;/param-value&gt;</span>
+<span class="nt">&lt;/context-param&gt;</span>
+</pre></div>
+
+
 <h3>Provide an error page</h3>
 
 <p>The default ExceptionHandler in Production stage or when myfaces error
 handling is disabled just throw an exception. So you can still setup an
 error page adding something like this in your web.xml file:</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-    <error-page>
-        <error-code>500</error-code>
-        <location>/somepage.jsp</location>
-    </error-page>
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt">&lt;error-page&gt;</span>
+    <span class="nt">&lt;error-code&gt;</span>500<span class="nt">&lt;/error-code&gt;</span>
+    <span class="nt">&lt;location&gt;</span>/somepage.jsp<span class="nt">&lt;/location&gt;</span>
+<span class="nt">&lt;/error-page&gt;</span>
+</pre></div>
+
+
 <h2>Error handling for MyFaces Core 1.2 and earlier versions</h2>
 
 <p>MyFaces, from version 1.2.1 and 1.1.6, includes automatic error-handling
@@ -219,34 +213,35 @@ have exactly what you want with these ne
 <p>If this is not what you want, though, you can always disable or modify
 this error-handling with the following parameters:</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-  <!-- if you want to disable the behaviour completely -->
-  <context-param>
-    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
-    <param-value>false</param-value>
-  </context-param>
-  <!-- if you are using myfaces + facelets don't forget to do this -->
-  <context-param>
-    <param-name>facelets.DEVELOPMENT</param-name>
-    <param-value>false</param-value>
-  </context-param></p>
-<p><!-- if you want to use a different resource template file than 
-       "META-INF/rsc/myfaces-dev-error.xml" this param let you configure
-       it. (since 1.2.4-SNAPSHOT and 1.1.6-SNAPSHOT)-->
-  <context-param>
-    <param-name>org.apache.myfaces.ERROR_TEMPLATE_RESOURCE</param-name>
-    <param-value>META-INF/rsc/custom-dev-error.xml</param-value>
-  </context-param></p>
-<p><!-- if you want to choose a different class for handling the exception -
-the error-handler needs to include a method handleException(FacesContext
-fc, Exception ex)-->
-  <context-param>
-    <param-name>org.apache.myfaces.ERROR_HANDLER</param-name>
-    <param-value>my.project.ErrorHandler</param-value>
-  </context-param> 
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="c">&lt;!-- if you want to disable the behaviour completely --&gt;</span>
+<span class="nt">&lt;context-param&gt;</span>
+    <span class="nt">&lt;param-name&gt;</span>org.apache.myfaces.ERROR_HANDLING<span class="nt">&lt;/param-name&gt;</span>
+    <span class="nt">&lt;param-value&gt;</span>false<span class="nt">&lt;/param-value&gt;</span>
+<span class="nt">&lt;/context-param&gt;</span>
+<span class="c">&lt;!-- if you are using myfaces + facelets don&#39;t forget to do this --&gt;</span>
+<span class="nt">&lt;context-param&gt;</span>
+    <span class="nt">&lt;param-name&gt;</span>facelets.DEVELOPMENT<span class="nt">&lt;/param-name&gt;</span>
+    <span class="nt">&lt;param-value&gt;</span>false<span class="nt">&lt;/param-value&gt;</span>
+<span class="nt">&lt;/context-param&gt;</span>
+
+<span class="c">&lt;!-- if you want to use a different resource template file than </span>
+<span class="c">   &quot;META-INF/rsc/myfaces-dev-error.xml&quot; this param let you configure</span>
+<span class="c">   it. (since 1.2.4-SNAPSHOT and 1.1.6-SNAPSHOT)--&gt;</span>
+<span class="nt">&lt;context-param&gt;</span>
+    <span class="nt">&lt;param-name&gt;</span>org.apache.myfaces.ERROR_TEMPLATE_RESOURCE<span class="nt">&lt;/param-name&gt;</span>
+    <span class="nt">&lt;param-value&gt;</span>META-INF/rsc/custom-dev-error.xml<span class="nt">&lt;/param-value&gt;</span>
+<span class="nt">&lt;/context-param&gt;</span>
+
+<span class="c">&lt;!-- if you want to choose a different class for handling the exception -</span>
+<span class="c">     the error-handler needs to include a method handleException(FacesContext</span>
+<span class="c">     fc, Exception ex)--&gt;</span>
+<span class="nt">&lt;context-param&gt;</span>
+    <span class="nt">&lt;param-name&gt;</span>org.apache.myfaces.ERROR_HANDLER<span class="nt">&lt;/param-name&gt;</span>
+    <span class="nt">&lt;param-value&gt;</span>my.project.ErrorHandler<span class="nt">&lt;/param-value&gt;</span>
+<span class="nt">&lt;/context-param&gt;</span>
+</pre></div>
+
+
 <p>If you do this, you can now read on to get to general ways of handling
 server-errors.</p>
 
@@ -267,18 +262,18 @@ to handle errors.</p>
 
 <p>For define a custom template file:</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-  <context-param>
-    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
-    <param-value>true</param-value>
-  </context-param></p>
-<p><context-param>
-    <param-name>org.apache.myfaces.ERROR_TEMPLATE_RESOURCE</param-name>
-    <param-value>META-INF/rsc/mycustom-template-error.xml</param-value>
-  </context-param>
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt">&lt;context-param&gt;</span>
+    <span class="nt">&lt;param-name&gt;</span>org.apache.myfaces.ERROR_HANDLING<span class="nt">&lt;/param-name&gt;</span>
+    <span class="nt">&lt;param-value&gt;</span>true<span class="nt">&lt;/param-value&gt;</span>
+<span class="nt">&lt;/context-param&gt;</span>
+
+<span class="nt">&lt;context-param&gt;</span>
+    <span class="nt">&lt;param-name&gt;</span>org.apache.myfaces.ERROR_TEMPLATE_RESOURCE<span class="nt">&lt;/param-name&gt;</span>
+    <span class="nt">&lt;param-value&gt;</span>META-INF/rsc/mycustom-template-error.xml<span class="nt">&lt;/param-value&gt;</span>
+<span class="nt">&lt;/context-param&gt;</span>
+</pre></div>
+
+
 <h3>Use sandbox
 org.apache.myfaces.tomahawk.util.ErrorRedirectJSFPageHandler</h3>
 
@@ -305,15 +300,15 @@ org.apache.myfaces.ERROR_REDIRECT_ALTERN
 
 <p>The info of the error in the jsf page can be found using:</p>
 
-<p><ac:macro ac:name="code"><ac:plain-text-body>&lt;![CDATA[
-1. {exceptionContext.cause} : Cause retrieved from the exception
+<div class="codehilite"><pre>1. {exceptionContext.cause} : Cause retrieved from the exception
 1. {exceptionContext.stackTrace} : Stack trace of the exception
 1. {exceptionContext.exception} : Exception handled by this page 
 1. {exceptionContext.tree} : Print the component tree of the page that cause
 the error
 1. {exceptionContext.vars} : Enviroment variables from the request
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+</pre></div>
+
+
 <h3>Using servlets</h3>
 
 <p>Mert Caliskan (<a class="external-link"
@@ -348,135 +343,132 @@ web.xml&lt;&lt;BR&gt;&gt;</p>
 <p><ac:link><ri:page ri:content-title="1" /></ac:link> define an error
 handling web page in web.xml</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-    <error-page>
-        <error-code>500</error-code>
-        <location>/ErrorDisplay.jsf</location>
-    </error-page>
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt">&lt;error-page&gt;</span>
+    <span class="nt">&lt;error-code&gt;</span>500<span class="nt">&lt;/error-code&gt;</span>
+    <span class="nt">&lt;location&gt;</span>/ErrorDisplay.jsf<span class="nt">&lt;/location&gt;</span>
+<span class="nt">&lt;/error-page&gt;</span>
+</pre></div>
+
+
 <p><ac:link><ri:page ri:content-title="2" /></ac:link> Create the error
 handler display. Due to a problem with the JSF 1.1 specification, the error
 handling page cannot use a &lt;f:view&gt; but must use a subview.</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
-<f:subview id="error"
-    xmlns:f="http://java.sun.com/jsf/core"
-    xmlns:t="http://myfaces.apache.org/tomahawk"
-    xmlns:h="http://java.sun.com/jsf/html"></p>
-<p><html>
-<head>
-    <meta content="no-cache" http-equiv="Cache-Control" />
-    <meta content="no-cache" http-equiv="Pragma" />
-    <title>CMS - Error</title>
-    <t:stylesheet path="#{SessionBean.styleSheet}" />
-    </head>
-    <body>
-    <h:form>
+<div class="codehilite"><pre><span class="cp">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</span>
+<span class="cp">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</span>
+<span class="nt">&lt;f:subview</span> <span class="na">id=</span><span class="s">&quot;error&quot;</span>
+    <span class="na">xmlns:f=</span><span class="s">&quot;http://java.sun.com/jsf/core&quot;</span>
+    <span class="na">xmlns:t=</span><span class="s">&quot;http://myfaces.apache.org/tomahawk&quot;</span>
+    <span class="na">xmlns:h=</span><span class="s">&quot;http://java.sun.com/jsf/html&quot;</span><span class="nt">&gt;</span>
+
+<span class="nt">&lt;html&gt;</span>
+<span class="nt">&lt;head&gt;</span>
+    <span class="nt">&lt;meta</span> <span class="na">content=</span><span class="s">&quot;no-cache&quot;</span> <span class="na">http-equiv=</span><span class="s">&quot;Cache-Control&quot;</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;meta</span> <span class="na">content=</span><span class="s">&quot;no-cache&quot;</span> <span class="na">http-equiv=</span><span class="s">&quot;Pragma&quot;</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;title&gt;</span>CMS - Error<span class="nt">&lt;/title&gt;</span>
+    <span class="nt">&lt;t:stylesheet</span> <span class="na">path=</span><span class="s">&quot;#{SessionBean.styleSheet}&quot;</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;/head&gt;</span>
+    <span class="nt">&lt;body&gt;</span>
+    <span class="nt">&lt;h:form&gt;</span>
        :
        : set up the normal view
        :
-       <h:outputText styleClass="infoMessage" escape="false"
-value="#{ErrorDisplay.infoMessage}" />
-       <t:htmlTag value="br" />
-       <h:inputTextarea style="width: 99%;" rows="10" readonly="true"
-value="#{ErrorDisplay.stackTrace}" />
+       <span class="nt">&lt;h:outputText</span> <span class="na">styleClass=</span><span class="s">&quot;infoMessage&quot;</span> <span class="na">escape=</span><span class="s">&quot;false&quot;</span>
+<span class="na">value=</span><span class="s">&quot;#{ErrorDisplay.infoMessage}&quot;</span> <span class="nt">/&gt;</span>
+       <span class="nt">&lt;t:htmlTag</span> <span class="na">value=</span><span class="s">&quot;br&quot;</span> <span class="nt">/&gt;</span>
+       <span class="nt">&lt;h:inputTextarea</span> <span class="na">style=</span><span class="s">&quot;width: 99%;&quot;</span> <span class="na">rows=</span><span class="s">&quot;10&quot;</span> <span class="na">readonly=</span><span class="s">&quot;true&quot;</span>
+<span class="na">value=</span><span class="s">&quot;#{ErrorDisplay.stackTrace}&quot;</span> <span class="nt">/&gt;</span>
        :
        : more view stuff
        :
-    </h:form>
-    </body>
-</html>
-</f:subview></p>
-<p>]
-]&gt;</ac:plain-text-body></ac:macro></p>
+    <span class="nt">&lt;/h:form&gt;</span>
+    <span class="nt">&lt;/body&gt;</span>
+<span class="nt">&lt;/html&gt;</span>
+<span class="nt">&lt;/f:subview&gt;</span>
+</pre></div>
+
+
 <p><ac:link><ri:page ri:content-title="3" /></ac:link> Create a backing
 bean in request scope which can process the error. (don't forget to
 register it on faces-config.xml)</p>
 
-<p><ac:macro ac:name="code"><ac:parameter
-ac:name="title">ErrorDisplay.java</ac:parameter><ac:plain-text-body>&lt;![CDATA[</p>
-<p>import cms.beans.framework.AbstractUIBean;</p>
-<p>import com.c2gl.jsf.framework.ApplicationResource;</p>
-<p>import java.io.PrintWriter;
-import java.io.StringWriter;</p>
-<p>import java.util.Map;</p>
-<p>import javax.faces.context.FacesContext;</p>
-<p>import javax.servlet.ServletException;</p>
-<p>public class ErrorDisplay extends AbstractUIBean {
-    private static final long serialVersionUID = 3123969847287207137L;
-    private static final String BEAN_NAME = ErrorDisplay.class.getName();</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">String</span> <span class="n">getInfoMessage</span><span class="p">()</span> <span class="p">{</span>
-<span class="k">return</span> &quot;<span class="n">An</span> <span class="n">unexpected</span> <span class="n">processing</span> <span class="n">error</span> <span class="n">has</span> <span class="n">occurred</span><span class="p">.</span> <span class="n">Please</span> <span class="n">cut</span> <span class="n">and</span>
-</pre></div>
-
-
-<p>paste the following information" + " into an email and send it to <b>" +
-    some email address + "</b>. If this error " + "continues to occur
-please contact our technical support staff at <b>" +
-    some phone number etc + "</b>.";
-    }</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">String</span> <span class="n">getStackTrace</span><span class="p">()</span> <span class="p">{</span>
-<span class="n">FacesContext</span> <span class="n">context</span> <span class="p">=</span> <span class="n">FacesContext</span><span class="p">.</span><span class="n">getCurrentInstance</span><span class="p">();</span>
-<span class="n">Map</span> <span class="n">requestMap</span> <span class="p">=</span> <span class="n">context</span><span class="p">.</span><span class="n">getExternalContext</span><span class="p">().</span><span class="n">getRequestMap</span><span class="p">();</span>
-<span class="n">Throwable</span> <span class="n">ex</span> <span class="p">=</span> <span class="p">(</span><span class="n">Throwable</span><span class="p">)</span>
-</pre></div>
-
-
-<p>requestMap.get("javax.servlet.error.exception");</p>
-<div class="codehilite"><pre><span class="n">StringWriter</span> <span class="n">writer</span> <span class="p">=</span> <span class="n">new</span> <span class="n">StringWriter</span><span class="p">();</span>
-<span class="n">PrintWriter</span> <span class="n">pw</span> <span class="p">=</span> <span class="n">new</span> <span class="n">PrintWriter</span><span class="p">(</span><span class="n">writer</span><span class="p">);</span>
-<span class="n">fillStackTrace</span><span class="p">(</span><span class="n">ex</span><span class="p">,</span> <span class="n">pw</span><span class="p">);</span>
-
-<span class="k">return</span> <span class="n">writer</span><span class="p">.</span><span class="n">toString</span><span class="p">();</span>
-<span class="p">}</span>
-
-<span class="n">private</span> <span class="n">void</span> <span class="n">fillStackTrace</span><span class="p">(</span><span class="n">Throwable</span> <span class="n">ex</span><span class="p">,</span> <span class="n">PrintWriter</span> <span class="n">pw</span><span class="p">)</span> <span class="p">{</span>
-<span class="k">if</span> <span class="p">(</span><span class="n">null</span> <span class="o">==</span> <span class="n">ex</span><span class="p">)</span> <span class="p">{</span>
-    <span class="k">return</span><span class="p">;</span>
-<span class="p">}</span>
-
-<span class="n">ex</span><span class="p">.</span><span class="n">printStackTrace</span><span class="p">(</span><span class="n">pw</span><span class="p">);</span>
-
-<span class="k">if</span> <span class="p">(</span><span class="n">ex</span> <span class="n">instanceof</span> <span class="n">ServletException</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">Throwable</span> <span class="n">cause</span> <span class="p">=</span> <span class="p">((</span><span class="n">ServletException</span><span class="p">)</span> <span class="n">ex</span><span class="p">).</span><span class="n">getRootCause</span><span class="p">();</span>
-
-    <span class="k">if</span> <span class="p">(</span><span class="n">null</span> !<span class="p">=</span> <span class="n">cause</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">pw</span><span class="p">.</span><span class="n">println</span><span class="p">(</span>&quot;<span class="n">Root</span> <span class="n">Cause</span><span class="p">:</span>&quot;<span class="p">);</span>
-    <span class="n">fillStackTrace</span><span class="p">(</span><span class="n">cause</span><span class="p">,</span> <span class="n">pw</span><span class="p">);</span>
-    <span class="p">}</span>
-<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
-    <span class="n">Throwable</span> <span class="n">cause</span> <span class="p">=</span> <span class="n">ex</span><span class="p">.</span><span class="n">getCause</span><span class="p">();</span>
-
-    <span class="k">if</span> <span class="p">(</span><span class="n">null</span> !<span class="p">=</span> <span class="n">cause</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">pw</span><span class="p">.</span><span class="n">println</span><span class="p">(</span>&quot;<span class="n">Cause</span><span class="p">:</span>&quot;<span class="p">);</span>
-    <span class="n">fillStackTrace</span><span class="p">(</span><span class="n">cause</span><span class="p">,</span> <span class="n">pw</span><span class="p">);</span>
-    <span class="p">}</span>
-<span class="p">}</span>
-<span class="p">}</span>
-</pre></div>
-
-
-<p>}</p>
-<p>]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<p>ErrorDisplay.java</p>
+<div class="codehilite"><pre><span class="kn">import</span> <span class="nn">cms.beans.framework.AbstractUIBean</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">com.c2gl.jsf.framework.ApplicationResource</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">java.io.PrintWriter</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">java.io.StringWriter</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">java.util.Map</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">javax.faces.context.FacesContext</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">javax.servlet.ServletException</span><span class="o">;</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">ErrorDisplay</span> <span class="kd">extends</span> <span class="n">AbstractUIBean</span> <span class="o">{</span>
+    <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="kt">long</span> <span class="n">serialVersionUID</span> <span class="o">=</span> <span class="mi">3123969847287207137L</span><span class="o">;</span>
+    <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">BEAN_NAME</span> <span class="o">=</span> <span class="n">ErrorDisplay</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getName</span><span class="o">();</span>
+
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">getInfoMessage</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="s">&quot;An unexpected processing error has occurred. Please cut and</span>
+<span class="s">    paste the following information&quot;</span> <span class="o">+</span> <span class="s">&quot; into an email and send it to &lt;b&gt;&quot;</span> <span class="o">+</span>
+        <span class="n">some</span> <span class="n">email</span> <span class="n">address</span> <span class="o">+</span> <span class="s">&quot;&lt;/b&gt;. If this error &quot;</span> <span class="o">+</span> <span class="s">&quot;continues to occur</span>
+<span class="s">    please contact our technical support staff at &lt;b&gt;&quot;</span> <span class="o">+</span>
+        <span class="n">some</span> <span class="n">phone</span> <span class="n">number</span> <span class="n">etc</span> <span class="o">+</span> <span class="s">&quot;&lt;/b&gt;.&quot;</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">getStackTrace</span><span class="o">()</span> <span class="o">{</span>
+        <span class="n">FacesContext</span> <span class="n">context</span> <span class="o">=</span> <span class="n">FacesContext</span><span class="o">.</span><span class="na">getCurrentInstance</span><span class="o">();</span>
+        <span class="n">Map</span> <span class="n">requestMap</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getExternalContext</span><span class="o">().</span><span class="na">getRequestMap</span><span class="o">();</span>
+        <span class="n">Throwable</span> <span class="n">ex</span> <span class="o">=</span> <span class="o">(</span><span class="n">Throwable</span><span class="o">)</span> <span class="n">requestMap</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">&quot;javax.servlet.error.exception&quot;</span><span class="o">);</span>
+
+        <span class="n">StringWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">StringWriter</span><span class="o">();</span>
+        <span class="n">PrintWriter</span> <span class="n">pw</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PrintWriter</span><span class="o">(</span><span class="n">writer</span><span class="o">);</span>
+        <span class="n">fillStackTrace</span><span class="o">(</span><span class="n">ex</span><span class="o">,</span> <span class="n">pw</span><span class="o">);</span>
+
+        <span class="k">return</span> <span class="n">writer</span><span class="o">.</span><span class="na">toString</span><span class="o">();</span>
+        <span class="o">}</span>
+
+        <span class="kd">private</span> <span class="kt">void</span> <span class="nf">fillStackTrace</span><span class="o">(</span><span class="n">Throwable</span> <span class="n">ex</span><span class="o">,</span> <span class="n">PrintWriter</span> <span class="n">pw</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">if</span> <span class="o">(</span><span class="kc">null</span> <span class="o">==</span> <span class="n">ex</span><span class="o">)</span> <span class="o">{</span>
+            <span class="k">return</span><span class="o">;</span>
+        <span class="o">}</span>
+
+        <span class="n">ex</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">(</span><span class="n">pw</span><span class="o">);</span>
+
+        <span class="k">if</span> <span class="o">(</span><span class="n">ex</span> <span class="k">instanceof</span> <span class="n">ServletException</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">Throwable</span> <span class="n">cause</span> <span class="o">=</span> <span class="o">((</span><span class="n">ServletException</span><span class="o">)</span> <span class="n">ex</span><span class="o">).</span><span class="na">getRootCause</span><span class="o">();</span>
+
+            <span class="k">if</span> <span class="o">(</span><span class="kc">null</span> <span class="o">!=</span> <span class="n">cause</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">pw</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&quot;Root Cause:&quot;</span><span class="o">);</span>
+            <span class="n">fillStackTrace</span><span class="o">(</span><span class="n">cause</span><span class="o">,</span> <span class="n">pw</span><span class="o">);</span>
+            <span class="o">}</span>
+        <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
+            <span class="n">Throwable</span> <span class="n">cause</span> <span class="o">=</span> <span class="n">ex</span><span class="o">.</span><span class="na">getCause</span><span class="o">();</span>
+
+            <span class="k">if</span> <span class="o">(</span><span class="kc">null</span> <span class="o">!=</span> <span class="n">cause</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">pw</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&quot;Cause:&quot;</span><span class="o">);</span>
+            <span class="n">fillStackTrace</span><span class="o">(</span><span class="n">cause</span><span class="o">,</span> <span class="n">pw</span><span class="o">);</span>
+            <span class="o">}</span>
+        <span class="o">}</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
 <p>Also have a look at our ExceptionUtils class. It encapsulates the way
 how to get the real root cause</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-    <a href="1.html">1</a>
- List exceptions = ExceptionUtils.getExceptions(exception);
-    <a href="2.html">2</a>
- Throwable throwable = (Throwable) exceptions.get(exceptions.size()-1);
-    <a href="3.html">3</a>
- String exceptionMessage = ExceptionUtils.getExceptionMessage(exceptions);
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="o">[</span><span class="mi">1</span><span class="o">](</span><span class="mi">1</span><span class="o">.</span><span class="na">html</span><span class="o">)</span>
+    <span class="n">List</span> <span class="n">exceptions</span> <span class="o">=</span> <span class="n">ExceptionUtils</span><span class="o">.</span><span class="na">getExceptions</span><span class="o">(</span><span class="n">exception</span><span class="o">);</span>
+<span class="o">[</span><span class="mi">2</span><span class="o">](</span><span class="mi">2</span><span class="o">.</span><span class="na">html</span><span class="o">)</span>
+   <span class="n">Throwable</span> <span class="n">throwable</span> <span class="o">=</span> <span class="o">(</span><span class="n">Throwable</span><span class="o">)</span> <span class="n">exceptions</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">exceptions</span><span class="o">.</span><span class="na">size</span><span class="o">()-</span><span class="mi">1</span><span class="o">);</span>
+<span class="o">[</span><span class="mi">3</span><span class="o">](</span><span class="mi">3</span><span class="o">.</span><span class="na">html</span><span class="o">)</span>
+    <span class="n">String</span> <span class="n">exceptionMessage</span> <span class="o">=</span> <span class="n">ExceptionUtils</span><span class="o">.</span><span class="na">getExceptionMessage</span><span class="o">(</span><span class="n">exceptions</span><span class="o">);</span>
+</pre></div>
+
+
 <p><ac:link><ri:page ri:content-title="1" /></ac:link> get a list of all
 exceptions - using getRootCause if available or
 getCause&lt;&lt;BR&gt;&gt;<br />
@@ -487,33 +479,27 @@ with an message starting with the initia
 
 <p>So the new fillStackTrace become</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-    private void fillStackTrace(Throwable ex, PrintWriter pw)
-    {
-    if (null == ex) {
-        return;
-    }</p>
-<div class="codehilite"><pre><span class="n">List</span> <span class="n">exceptions</span> <span class="p">=</span> <span class="n">ExceptionUtils</span><span class="p">.</span><span class="n">getExceptions</span><span class="p">(</span><span class="n">exception</span><span class="p">);</span>
-<span class="n">Throwable</span> <span class="n">throwable</span> <span class="p">=</span> <span class="p">(</span><span class="n">Throwable</span><span class="p">)</span>
-</pre></div>
-
-
-<p>exceptions.get(exceptions.size()-1);</p>
-<div class="codehilite"><pre><span class="k">for</span> <span class="p">(</span><span class="n">int</span> <span class="nb">i</span> <span class="p">=</span> 0<span class="p">;</span> <span class="nb">i</span><span class="o">&lt;</span><span class="n">exceptions</span><span class="p">.</span><span class="nb">size</span><span class="p">();</span> <span class="nb">i</span><span class="o">++</span><span class="p">)</span>
-<span class="p">{</span>
-    <span class="k">if</span> <span class="p">(</span><span class="nb">i</span> <span class="o">&gt;</span> 0<span class="p">)</span>
-    <span class="p">{</span>
-    <span class="n">pw</span><span class="p">.</span><span class="n">println</span><span class="p">(</span>&quot;<span class="n">Cause</span><span class="p">:</span>&quot;<span class="p">);</span>
-    <span class="p">}</span>
-    <span class="n">throwable</span><span class="p">.</span><span class="n">printStackTrace</span><span class="p">(</span><span class="n">pw</span><span class="p">);</span>
-<span class="p">}</span>
-<span class="p">}</span>
+<div class="codehilite"><pre><span class="kd">private</span> <span class="kt">void</span> <span class="nf">fillStackTrace</span><span class="o">(</span><span class="n">Throwable</span> <span class="n">ex</span><span class="o">,</span> <span class="n">PrintWriter</span> <span class="n">pw</span><span class="o">)</span>
+<span class="o">{</span>
+    <span class="k">if</span> <span class="o">(</span><span class="kc">null</span> <span class="o">==</span> <span class="n">ex</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">return</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="n">List</span> <span class="n">exceptions</span> <span class="o">=</span> <span class="n">ExceptionUtils</span><span class="o">.</span><span class="na">getExceptions</span><span class="o">(</span><span class="n">exception</span><span class="o">);</span>
+    <span class="n">Throwable</span> <span class="n">throwable</span> <span class="o">=</span> <span class="o">(</span><span class="n">Throwable</span><span class="o">)</span> <span class="n">exceptions</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">exceptions</span><span class="o">.</span><span class="na">size</span><span class="o">()-</span><span class="mi">1</span><span class="o">);</span>
+
+    <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o">&lt;</span><span class="n">exceptions</span><span class="o">.</span><span class="na">size</span><span class="o">();</span> <span class="n">i</span><span class="o">++)</span>
+    <span class="o">{</span>
+        <span class="k">if</span> <span class="o">(</span><span class="n">i</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="o">)</span>
+        <span class="o">{</span>
+        <span class="n">pw</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&quot;Cause:&quot;</span><span class="o">);</span>
+        <span class="o">}</span>
+        <span class="n">throwable</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">(</span><span class="n">pw</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<p>]
-]&gt;</ac:plain-text-body></ac:macro></p>
 <p>In the backing bean we construct a message which informs the user that
 something we didnt't plan for has happened with directions on who to call,
 what to do etc. We don't really care if they actually do cut-and-paste the
@@ -548,60 +534,55 @@ specifying a non-JSF URL as the error pa
 the JSF error page. For example, for the 404 error code you could specify
 ''/error/404_redirect.html'':</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-<html><head><meta http-equiv="Refresh" content="0;
-URL=/DPSV4/error/404.jsf"></head></html>
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt">&lt;html&gt;&lt;head&gt;&lt;meta</span> <span class="na">http-equiv=</span><span class="s">&quot;Refresh&quot;</span> <span class="na">content=</span><span class="s">&quot;0;</span>
+<span class="s">URL=/DPSV4/error/404.jsf&quot;</span><span class="nt">&gt;&lt;/head&gt;&lt;/html&gt;</span>
+</pre></div>
+
+
 <p>This works, but requires you to hard code the context path.</p>
 
 <p>The solution I ended up with involves a ''RedirectServlet'':</p>
 
-<p><ac:macro ac:name="code"><ac:parameter
-ac:name="title">RedirectServlet.java</ac:parameter><ac:plain-text-body>&lt;![CDATA[
-public class RedirectServlet extends HttpServlet {
-    private static final String URL_PREFIX = "url=";</p>
-<div class="codehilite"><pre><span class="p">@</span><span class="n">Override</span>
-<span class="n">protected</span> <span class="n">void</span> <span class="n">doGet</span><span class="p">(</span><span class="n">HttpServletRequest</span> <span class="n">req</span><span class="p">,</span> <span class="n">HttpServletResponse</span>
-</pre></div>
-
+<p>RedirectServlet.java</p>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">RedirectServlet</span> <span class="kd">extends</span> <span class="n">HttpServlet</span> <span class="o">{</span>
+    <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">URL_PREFIX</span> <span class="o">=</span> <span class="s">&quot;url=&quot;</span><span class="o">;</span>
+
+    <span class="nd">@Override</span>
+    <span class="kd">protected</span> <span class="kt">void</span> <span class="nf">doGet</span><span class="o">(</span><span class="n">HttpServletRequest</span> <span class="n">req</span><span class="o">,</span> <span class="n">HttpServletResponse</span>
+<span class="n">resp</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ServletException</span><span class="o">,</span> <span class="n">IOException</span> <span class="o">{</span>
+        <span class="n">String</span> <span class="n">query</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="na">getQueryString</span><span class="o">();</span>
+        <span class="k">if</span> <span class="o">(</span> <span class="n">query</span><span class="o">.</span><span class="na">contains</span><span class="o">(</span><span class="n">URL_PREFIX</span><span class="o">)</span> <span class="o">)</span> <span class="o">{</span>
+            <span class="n">String</span> <span class="n">url</span> <span class="o">=</span> <span class="n">query</span><span class="o">.</span><span class="na">replace</span><span class="o">(</span><span class="n">URL_PREFIX</span><span class="o">,</span> <span class="s">&quot;&quot;</span><span class="o">);</span>
+            <span class="k">if</span> <span class="o">(</span> <span class="o">!</span><span class="n">url</span><span class="o">.</span><span class="na">startsWith</span><span class="o">(</span><span class="n">req</span><span class="o">.</span><span class="na">getContextPath</span><span class="o">())</span> <span class="o">)</span> <span class="o">{</span>
+                <span class="n">url</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="na">getContextPath</span><span class="o">()</span> <span class="o">+</span> <span class="n">url</span><span class="o">;</span>
+            <span class="o">}</span>
+
+        <span class="n">resp</span><span class="o">.</span><span class="na">sendRedirect</span><span class="o">(</span><span class="n">url</span><span class="o">);</span>
+        <span class="o">}</span>
+    <span class="o">}</span>
+
+    <span class="nd">@Override</span>
+    <span class="kd">protected</span> <span class="kt">void</span> <span class="nf">doPost</span><span class="o">(</span><span class="n">HttpServletRequest</span> <span class="n">req</span><span class="o">,</span> <span class="n">HttpServletResponse</span>
+<span class="n">resp</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">ServletException</span><span class="o">,</span> <span class="n">IOException</span> <span class="o">{</span>
+        <span class="n">doGet</span><span class="o">(</span><span class="n">req</span><span class="o">,</span> <span class="n">resp</span><span class="o">);</span>
+    <span class="o">}</span>
 
-<p>resp) throws ServletException, IOException {
-        String query = req.getQueryString();
-        if ( query.contains(URL_PREFIX) ) {
-            String url = query.replace(URL_PREFIX, "");
-            if ( !url.startsWith(req.getContextPath()) ) {
-                url = req.getContextPath() + url;
-            }</p>
-<div class="codehilite"><pre>    <span class="n">resp</span><span class="p">.</span><span class="n">sendRedirect</span><span class="p">(</span><span class="n">url</span><span class="p">);</span>
-    <span class="p">}</span>
-<span class="p">}</span>
-
-<span class="p">@</span><span class="n">Override</span>
-<span class="n">protected</span> <span class="n">void</span> <span class="n">doPost</span><span class="p">(</span><span class="n">HttpServletRequest</span> <span class="n">req</span><span class="p">,</span> <span class="n">HttpServletResponse</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<p>resp) throws ServletException, IOException {
-        doGet(req, resp);
-    }</p>
-<p>}</p>
-<p>]
-]&gt;</ac:plain-text-body></ac:macro></p>
 <p>used like this in ''web.xml'':</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-    <servlet>
-        <servlet-name>Redirect Servlet</servlet-name></p>
-<p><servlet-class>ca.gc.agr.ops.web.jsf.redirect.RedirectServlet</servlet-class>
-    </servlet>  <br />
-    <servlet-mapping>
-        <servlet-name>Redirect Servlet</servlet-name>
-        <url-pattern>/redirect</url-pattern>
-    </servlet-mapping></p>
-<div class="codehilite"><pre><span class="nt">&lt;error-page&gt;</span>
+<div class="codehilite"><pre><span class="nt">&lt;servlet&gt;</span>
+    <span class="nt">&lt;servlet-name&gt;</span>Redirect Servlet<span class="nt">&lt;/servlet-name&gt;</span>
+    <span class="nt">&lt;servlet-class&gt;</span>ca.gc.agr.ops.web.jsf.redirect.RedirectServlet<span class="nt">&lt;/servlet-class&gt;</span>
+<span class="nt">&lt;/servlet&gt;</span>    
+<span class="nt">&lt;servlet-mapping&gt;</span>
+    <span class="nt">&lt;servlet-name&gt;</span>Redirect Servlet<span class="nt">&lt;/servlet-name&gt;</span>
+    <span class="nt">&lt;url-pattern&gt;</span>/redirect<span class="nt">&lt;/url-pattern&gt;</span>
+<span class="nt">&lt;/servlet-mapping&gt;</span>
+
+<span class="nt">&lt;error-page&gt;</span>
     <span class="nt">&lt;error-code&gt;</span>403<span class="nt">&lt;/error-code&gt;</span>
     <span class="nt">&lt;location&gt;</span>/redirect?url=/error/403.jsf<span class="nt">&lt;/location&gt;</span>
 <span class="nt">&lt;/error-page&gt;</span>
@@ -616,8 +597,6 @@ ac:name="code"><ac:default-parameter>xml
 </pre></div>
 
 
-<p>]
-]&gt;</ac:plain-text-body></ac:macro></p>
 <h3>With plain JSP </h3>
 
 <p>If you didn't require any JSF functionality in your JSP page it might be
@@ -628,14 +607,13 @@ worth to consider using the following er
 
 <p>with this web.xml configuration</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-    <error-page>
-        <error-code>500</error-code>
-        <location>/error.jsp</location>
-    </error-page>
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt">&lt;error-page&gt;</span>
+    <span class="nt">&lt;error-code&gt;</span>500<span class="nt">&lt;/error-code&gt;</span>
+    <span class="nt">&lt;location&gt;</span>/error.jsp<span class="nt">&lt;/location&gt;</span>
+<span class="nt">&lt;/error-page&gt;</span>
+</pre></div>
+
+
 <p>This reduces the number of technologies required to show the error page
 which might improve the availablity of this page <ac:emoticon
 ac:name="wink" /></p>
@@ -656,30 +634,30 @@ classloading via hidden-classes setting.
 
 <p>A fragment of your dependency plan would be like this:</p>
 
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
-<dep:dependencies>
+<div class="codehilite"><pre><span class="nt">&lt;dep:dependencies&gt;</span>
 .
 .
-    <dep:dependency>
-        <dep:groupId>org.apache.myfaces.core</dep:groupId>
-        <dep:artifactId>myfaces-api</dep:artifactId>
-        <dep:type>jar</dep:type>
-    </dep:dependency>
-    <dep:dependency>
-        <dep:groupId>org.apache.myfaces.core</dep:groupId>
-        <dep:artifactId>myfaces-impl</dep:artifactId>
-        <dep:type>jar</dep:type>
-    </dep:dependency>
+    <span class="nt">&lt;dep:dependency&gt;</span>
+        <span class="nt">&lt;dep:groupId&gt;</span>org.apache.myfaces.core<span class="nt">&lt;/dep:groupId&gt;</span>
+        <span class="nt">&lt;dep:artifactId&gt;</span>myfaces-api<span class="nt">&lt;/dep:artifactId&gt;</span>
+        <span class="nt">&lt;dep:type&gt;</span>jar<span class="nt">&lt;/dep:type&gt;</span>
+    <span class="nt">&lt;/dep:dependency&gt;</span>
+    <span class="nt">&lt;dep:dependency&gt;</span>
+        <span class="nt">&lt;dep:groupId&gt;</span>org.apache.myfaces.core<span class="nt">&lt;/dep:groupId&gt;</span>
+        <span class="nt">&lt;dep:artifactId&gt;</span>myfaces-impl<span class="nt">&lt;/dep:artifactId&gt;</span>
+        <span class="nt">&lt;dep:type&gt;</span>jar<span class="nt">&lt;/dep:type&gt;</span>
+    <span class="nt">&lt;/dep:dependency&gt;</span>
 .
 .
-</dep:dependencies></p>
-<p><dep:hidden-classes>
-    <dep:filter>javax.faces</dep:filter>
-    <dep:filter>org.apache.myfaces</dep:filter>
-</dep:hidden-classes>
-]
-]&gt;</ac:plain-text-body></ac:macro></p>
+<span class="nt">&lt;/dep:dependencies&gt;</span>
+
+<span class="nt">&lt;dep:hidden-classes&gt;</span>
+    <span class="nt">&lt;dep:filter&gt;</span>javax.faces<span class="nt">&lt;/dep:filter&gt;</span>
+    <span class="nt">&lt;dep:filter&gt;</span>org.apache.myfaces<span class="nt">&lt;/dep:filter&gt;</span>
+<span class="nt">&lt;/dep:hidden-classes&gt;</span>
+</pre></div>
+
+
 <p>This solution was tested under Apache Geronimo 2.1.3., but will probably
 be similar in other versions.</p></div></div>
       </div>

Modified: websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html (original)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html Thu Feb  6 01:32:14 2014
@@ -84,10 +84,12 @@
     </div>
     <div id="body_column">
       <div>
-      <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/">Jsf-and-myfaces-howtos</a></p>
+      <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos.html">JSF and MyFaces Howtos</a></p>
       <h2>Working with tables</h2>
-      <div id="content" class="grid_16"><div class="section-content"><p><ac:macro ac:name="children"><ac:parameter
-ac:name="all">true</ac:parameter></ac:macro></p></div></div>
+      <div id="content" class="grid_16"><div class="section-content"><ul>
+<li><a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/executing-methods-from-link-or-button-inside-a-table.html">Executing methods from link or button inside a table</a></li>
+<li><a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/get-row-data-from-an-actionlistener.html">Get row data from an ActionListener</a></li>
+</ul></div></div>
       </div>
     </div>
     <div class="clear"></div>