[jboss-user] [JBoss Seam] - s:decorate looses form values on validation error

utiba_davidr do-not-reply at jboss.com
Thu Nov 29 20:52:44 EST 2007


Hey All,

  I have been trying to get this to work for the last two days, a little disconcerting. I am sure its something I have done wrong but im not sure what it is. When I use the s:decorate component to display an inline error message, upon displaying the inline error message correctly the forms value is suddenly cleared. Standard input components not wrapped inside a s:decorate do not exhibit this problem so I don't believe its related to page flow or scope, but im not certain what the issue is.

The xhtml page is as follows:

(NB: This isn't the desired form layout, this is an example to prove that s:decorate was the issue and that standard inputText / outputText in a panel worked fine)


  |     <h:form id="registerAgentForm">
  | 
  | 	<rich:panel>
  | 		<f:facet name="header">Register Agent</f:facet>
  | 
  | 		<h:panelGrid columns="2"  rowClasses="prop" columnClasses="name,value">
  | 
  | 		<h:column>
  | 		    <h:outputText value="Agent Reference:"/>
  | 		</h:column>
  | 		<h:column>
  | 		    <h:inputText id="agentref" value="#{agent.agentReference}" required="true"/>
  | 		    <s:decorate for="agentref" template="/WEB-INF/templates/layout/edit.xhtml"/>
  | 		</h:column>
  | 
  | 		<h:column>
  | 		    <h:outputText value="Name:"/>
  | 		</h:column>
  | 		<h:column>
  | 		    <h:inputText id="agentname" value="#{agent.name}" required="true"/>
  | 		    <s:decorate for="agentname" template="/WEB-INF/templates/layout/edit.xhtml"/>
  | 		</h:column>
  | 
  |         </h:panelGrid>
  | 
  |         <s:decorate id="nicDecoration" template="/WEB-INF/templates/fragment/edit.xhtml">
  |             <ui:define name="label">NIC:</ui:define>
  |             <h:inputText id="nic" value="#{agent.nic}" required="true"/>
  |         </s:decorate>
  | 
  |         <div style="clear:both"/>
  |     </rich:panel>
  | 
  |     <h:commandButton type="submit" value="Register" action="#{manageAgentAction.register}"/>
  | 
  |     </h:form>
  | 

The contents of edit.xhtml (pretty standard implementation) are as follows:


  | <ui:composition  xmlns="http://www.w3.org/1999/xhtml"
  |                  xmlns:ui="http://java.sun.com/jsf/facelets"
  |                  xmlns:h="http://java.sun.com/jsf/html"
  |                  xmlns:f="http://java.sun.com/jsf/core"
  |                  xmlns:s="http://jboss.com/products/seam/taglib">
  |                  
  |     <div class="prop">
  |                 
  |         <s:label styleClass="name #{invalid?'errors':''}">
  |             <ui:insert name="label"/>
  |             <s:span styleClass="required" rendered="#{required}">*</s:span>
  |         </s:label>
  |         
  |         <span class="value #{invalid?'errors':''}">
  |             <s:validateAll>
  |                 <ui:insert/>
  |             </s:validateAll>
  |         </span>
  |         
  |         <s:message styleClass="error errors"/>        
  | 
  |     </div>
  |     
  | </ui:composition>
  | 

Thanks in advance!

David

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4109114#4109114

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4109114



More information about the jboss-user mailing list