-
<s:decorate> without template attribute and with <s:validateAll>, requiredMessage, validateLength samples.
<s:label id=”editLabel” styleClass=”#{invalid?’errors’:”}”>
created by
<s:span styleClass=”required” rendered=”true”>*</s:span>
</s:label>
<span id=”editSpan” class=”#{invalid?’errors’:”}”>
invalid value > #{invalid}
<f:validateLength maximum=”5″ minimum=”1″ />
</ice:inputText>
</span>
<s:message styleClass=”error errors” />
</div>
</s:validateAll>
</s:decorate>
Note: The reason being used s:decorate is that #{invalid} and #{required} are available inside s:decorate; #{required} evaluates to true if you have set the input component being decorated as required, and #{invalid} evaluates to true if a validation error occurs.
- <s:decorate> without template attribute and <s:validateAll>, validateLength and with only required=”true” also work!!!.
<s:label id=”editLabel” styleClass=”#{invalid?’errors’:”}”>
created by
<s:span styleClass=”required” rendered=”true”>*</s:span>
</s:label>
<span id=”editSpan” class=”#{invalid?’errors’:”}”>
invalid value > #{invalid}
</ice:inputText>
</span>
<s:message styleClass=”error errors” />
</div>
</s:decorate>
-
With just <s:decorate>, required=”true”, s:message and without requiredMessage attribute.
<s:label id=”editLabel” styleClass=”#{invalid?’errors’:”}”>
created by
<s:span styleClass=”required” rendered=”true”>*</s:span>
</s:label>
<span id=”editSpan” class=”#{invalid?’errors’:”}”>
invalid value > #{invalid}
</ice:inputText>
</span>
<s:message styleClass=”error errors” />
</div>
</s:decorate>