webtier@glassfish.java.net

Mojarra 2.0.x and Bean Validation : ajax versus regular submit

From: <webtier_at_javadesktop.org>
Date: Mon, 18 Jan 2010 17:10:59 PST

<DIV class=Section1>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Step <SPAN
class=GramE>1 :</SPAN><o:p></o:p></B></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Starting with <SPAN
class=GramE>the<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>following</SPAN>
home.xhtml<o:p></o:p></B></P>
<P class=MsoNormal><SPAN class=GramE><B style="mso-bidi-font-weight: normal">(
Note</B></SPAN><B style="mso-bidi-font-weight: normal"> how the h:messages tag
is outside the form: )<o:p></o:p></B></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal"><I
style="mso-bidi-font-style: normal"><o:p>&nbsp;</o:p></I></B></P>
<P class=MsoNormal>&lt;html xmlsns=....&gt;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>&lt;<SPAN class=GramE>h:</SPAN>head&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;<SPAN class=GramE>meta</SPAN> http-equiv="Content-Type"
content="text/html; charset=UTF-8"/&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;<SPAN class=GramE>title&gt;</SPAN>Hello JSF 2!&lt;/title&gt;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:head</SPAN>&gt;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>&lt;<SPAN class=GramE>h:</SPAN>body&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;p&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>#{</SPAN>welcome.message}</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/p&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:messages</SPAN> id="messages" style="color:
red;"</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>layout</SPAN>="table"/&gt;</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:form</SPAN> id="form"&gt;</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:panelGrid</SPAN> id="grid1" columns="2"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN
class=GramE>Title :</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="title"
value="#{welcome.title}" label="Title"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>Name :</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="name"
value="#{welcome.name}" label="Name"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>&lt;/h<SPAN
class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>Employee :</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="employee"
value="#{welcome.employee}" label="Employee"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;f<SPAN class=GramE>:validateBean</SPAN> disabled="true" /&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</SPAN>&lt;h<SPAN
class=GramE>:commandButton</SPAN> value="OK" action="success" /&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:panelGrid</SPAN>&gt; </P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:form</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:body</SPAN>&gt;</P>
<P class=MsoNormal>&lt;/html&gt;</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN class=GramE><B
style="mso-bidi-font-weight: normal">and</B></SPAN><B
style="mso-bidi-font-weight: normal"> WelcomeBean.java<o:p></o:p></B></P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN class=GramE>import</SPAN>
javax.faces.bean.ManagedBean;</P>
<P class=MsoNormal><SPAN class=GramE>import</SPAN>
javax.faces.bean.SessionScoped;</P>
<P class=MsoNormal><SPAN class=GramE>import</SPAN>
javax.validation.constraints.NotNull;</P>
<P class=MsoNormal><SPAN class=GramE><SPAN lang=FR
style="mso-ansi-language: FR">import</SPAN></SPAN><SPAN lang=FR
style="mso-ansi-language: FR">
javax.validation.constraints.Size;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=FR
style="mso-ansi-language: FR"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal>@SessionScoped</P>
<P class=MsoNormal><SPAN class=GramE>@ManagedBean(</SPAN>name = "welcome", eager
= true)</P>
<P class=MsoNormal><SPAN class=GramE>public</SPAN> class WelcomeBean {</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>String title;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>String name;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>String employee;</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>public</SPAN> WelcomeBean() {</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>System.out.println(</SPAN>"WelcomeBean
instantiated");</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>public</SPAN> String getMessage() {</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>return</SPAN> "I'm alive!";</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>@NotNull</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>@Size(</SPAN>min=2, message =
"{validator.notEmpty}")</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>public</SPAN> String getName() {</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>return</SPAN> name;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>public</SPAN> void setName(String name) {</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>this.name = name;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>@NotNull</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>@Size(</SPAN>min=3, max=5, message = "Invalid text
length; must be between {min} and {max}")</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>public</SPAN> String getTitle() {</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>return</SPAN> title;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>public</SPAN> void setTitle(String title) {</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>this.title = title;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>@NotNull</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>@Size(</SPAN>min=1, message =
"{validator.notEmpty}")</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>public</SPAN> String getEmployee() {</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>return</SPAN> employee;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>public</SPAN> void setEmployee(String employee) {</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>this.employee = employee;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal>}</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal>When using the Submit button for a regular <SPAN
class=GramE>post ,</SPAN> the errors messages appear as expected from the JSF.2
(Mojarra 2.0.3-SNAPSHOT) - Hibernate Validator (JSR 303 RI) integration. </P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Step
2:<o:p></o:p></B></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Adding <st1:City
w:st="on"><st1:place w:st="on"><SPAN
class=GramE>ajax</SPAN></st1:place></st1:City> validation</B> with default event
on title and name inputText </P>
<P class=MsoNormal><SPAN class=GramE>so</SPAN> they become like this :</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="title"
value="#{welcome.title}" label="Title"&gt;</P>
<P class=MsoNormal><SPAN lang=FR style="mso-ansi-language: FR"><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;<B style="mso-bidi-font-weight: normal">f:ajax<SPAN
style="mso-spacerun: yes">&nbsp;
</SPAN>render="messages</B>"/&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=FR style="mso-ansi-language: FR"><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN></SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="name"
value="#{welcome.name}" label="Name"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN lang=FR style="mso-ansi-language: FR">&lt;<B
style="mso-bidi-font-weight: normal">f:ajax
render="messages</B>"/&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=FR style="mso-ansi-language: FR"><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN></SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal>Getting error screen "An Error Occurred:"</P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">&lt;f<SPAN
class=GramE>:<st1:City w:st="on"><st1:place
w:st="on">ajax</st1:place></st1:City>&gt; contains an unknown id 'messages' -
cannot locate it in the context of the co</SPAN>mponent title<o:p></o:p></B></P>
<P class=MsoNormal><SPAN class=GramE><B
style="mso-bidi-font-weight: normal">and</B></SPAN><B
style="mso-bidi-font-weight: normal"> stack trace<o:p></o:p></B></P>
<P class=MsoNormal>javax.faces.FacesException: &lt;f<SPAN
class=GramE>:<st1:place w:st="on"><st1:City
w:st="on">ajax</st1:City></st1:place>&gt; contains an unknown id 'messages'
- cannot locate it in the context of the component title</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.getResolvedId(AjaxBehaviorRenderer.java:282)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.appendIds(AjaxBehaviorRenderer.java:269)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.buildAjaxCommand(AjaxBehaviorRenderer.java:214)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.getScript(AjaxBehaviorRenderer.java:86)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.component.behavior.ClientBehaviorBase.getScript(ClientBehaviorBase.java:99)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.RenderKitUtils.getSingleBehaviorHandler(RenderKitUtils.java:1585)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.RenderKitUtils.renderHandler(RenderKitUtils.java:1685)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.RenderKitUtils.renderOnchange(RenderKitUtils.java:366)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.html_basic.TextRenderer.getEndTextToRender(TextRenderer.java:134)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:170)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:295)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN lang=FR style="mso-ansi-language: FR">at <SPAN
class=GramE>org.apache.catalina.connector.CoyoteAdapter.doService(</SPAN>CoyoteAdapter.java:332)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=FR style="mso-ansi-language: FR"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>at <SPAN
class=GramE>org.apache.catalina.connector.CoyoteAdapter.service(</SPAN>CoyoteAdapter.java:233)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=FR style="mso-ansi-language: FR"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>at <SPAN
class=GramE>com.sun.enterprise.v3.services.impl.ContainerMapper.service(</SPAN>ContainerMapper.java:165)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=FR style="mso-ansi-language: FR"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>at <SPAN
class=GramE>com.sun.grizzly.http.ProcessorTask.invokeAdapter(</SPAN>ProcessorTask.java:791)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=FR style="mso-ansi-language: FR"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN></SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.ContextTask.run(ContextTask.java:69)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN>
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>at</SPAN> java.lang.Thread.run(Thread.java:619)</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN class=GramE><B
style="mso-bidi-font-weight: normal">Question :</B></SPAN><B
style="mso-bidi-font-weight: normal"> is <st1:City w:st="on"><st1:place
w:st="on">ajax</st1:place></st1:City> refresh working just for fields within the
same form ?<o:p></o:p></B></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">This means I cannot
have multiple forms within same page but only one h<SPAN
class=GramE>:messages</SPAN> tag shared and refreshed<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>from any of the forms
?<o:p></o:p></B></P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Step 3:
<o:p></o:p></B></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Moving messages tag
within the form <SPAN class=GramE>now :</SPAN><o:p></o:p></B></P>
<P class=MsoNormal><SPAN class=GramE><B
style="mso-bidi-font-weight: normal">and</B></SPAN><B
style="mso-bidi-font-weight: normal"> adjusting the f:<st1:City
w:st="on"><st1:place w:st="on">ajax</st1:place></st1:City> :<o:p></o:p></B></P>
<P class=MsoNormal><B
style="mso-bidi-font-weight: normal"><o:p>&nbsp;</o:p></B></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:form</SPAN> id="form"&gt;</P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:messages</SPAN> id="messages" style="color:
red;"<o:p></o:p></B></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>layout</SPAN>="table"/&gt;<o:p></o:p></B></P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:panelGrid</SPAN> id="grid1" columns="2"&gt;</P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN
class=GramE>Title :</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="title"
value="#{welcome.title}" label="Title"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;f<SPAN class=GramE>:<st1:place w:st="on"><st1:City
w:st="on">ajax</st1:City></st1:place><SPAN style="mso-spacerun: yes">&nbsp;
</SPAN>render="</SPAN><B
style="mso-bidi-font-weight: normal">form:messages</B>"/&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>Name :</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="name"
value="#{welcome.name}" label="Name"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;f<SPAN class=GramE>:<st1:place w:st="on"><st1:City
w:st="on">ajax</st1:City></st1:place> render="</SPAN><B
style="mso-bidi-font-weight: normal">form:messages</B>"/&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>Employee :</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="employee"
value="#{welcome.employee}" label="Employee"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;f<SPAN class=GramE>:validateBean</SPAN> disabled="true" /&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:commandButton</SPAN> value="OK" action="success"
/&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:panelGrid</SPAN>&gt; </P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:form</SPAN>&gt;</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal>The page can display <SPAN class=GramE>now .</SPAN></P>
<P class=MsoNormal>However when changing the input texts and the <st1:City
w:st="on"><st1:place w:st="on">ajax</st1:place></st1:City> request is <SPAN
class=GramE>posted ,</SPAN> the messages show only one at a time . </P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal>To clarify: I enter one letter in Title field , I tab to next
field see the error message I am expecting , then enter one letter in the Name ,
I see the error message for the Name field , but the error message for the Title
field is gone .</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal>Since I am refreshing the whole messages component I am
expecting to see all messages like in the regular submit.</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Step
4:<o:p></o:p></B></P>
<P class=MsoNormal>I get that FacesMessages are request scope <B
style="mso-bidi-font-weight: normal">therefore I adjust the f<SPAN
class=GramE>:<st1:City w:st="on"><st1:place
w:st="on">ajax</st1:place></st1:City> tags like this</SPAN></B> :</P>
<P class=MsoNormal>&lt;h<SPAN class=GramE>:form</SPAN> id="form"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:messages</SPAN> id="messages" style="color:
red;"</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>layout</SPAN>="table"/&gt;</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:panelGrid</SPAN> id="grid1" columns="2"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>Title :</SPAN></P>
<P class=MsoNormal><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>&lt;h<SPAN
class=GramE>:inputText</SPAN> id="title" value="#{welcome.title}"
label="Title"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;f<SPAN class=GramE>:<st1:place w:st="on"><st1:City
w:st="on">ajax</st1:City></st1:place> </SPAN><B
style="mso-bidi-font-weight: normal">execute="@this name"</B>
render="form:messages"/&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>Name :</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="name"
value="#{welcome.name}" label="Name"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;f<SPAN class=GramE>:<st1:place w:st="on"><st1:City
w:st="on">ajax</st1:City></st1:place> </SPAN><B
style="mso-bidi-font-weight: normal">execute="@this title"</B>
render="form:messages"/&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN><SPAN class=GramE>Employee :</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:inputText</SPAN> id="employee"
value="#{welcome.employee}" label="Employee"&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;f<SPAN class=GramE>:validateBean</SPAN> disabled="true" /&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:inputText</SPAN>&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;h<SPAN class=GramE>:commandButton</SPAN> value="OK" action="success"
/&gt;</P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:panelGrid</SPAN>&gt; </P>
<P class=MsoNormal><SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>&lt;/h<SPAN class=GramE>:form</SPAN>&gt;</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal>The error reporting now is closer to the regular submit
behaviour however the error message for the title is displayed too early since
the user did not have the chance to enter the value .</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal>Is there a way to say to f<SPAN class=GramE>:<st1:City
w:st="on"><st1:place w:st="on">ajax</st1:place></st1:City> , execute this field
only if is non empty ?</SPAN> Something <SPAN class=GramE>like :</SPAN></P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal>&lt;f<SPAN class=GramE>:<st1:place w:st="on"><st1:City
w:st="on">ajax</st1:City></st1:place> </SPAN><B
style="mso-bidi-font-weight: normal">execute="@this ( not empty title )"</B>
render="form:messages"/&gt;</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<P class=MsoNormal>… Maybe a proposal for JSF2.next …</P>
<P class=MsoNormal><o:p>&nbsp;</o:p></P></DIV>

Until then what choices do I have ?
Where I can find info about Validation accross fiels with JSF2 and Hibernate Validator that would help this case ?

Thank you .
[Message sent by forum member 'movemountfuji' (movemountfuji_at_gmail.com)]

http://forums.java.net/jive/thread.jspa?messageID=381608