<s:validateAll/> doesn't perform hibernate model validations if manual control
validator assigned
-------------------------------------------------------------------------------------------------
Key: JBSEAM-4483
URL:
https://jira.jboss.org/jira/browse/JBSEAM-4483
Project: Seam
Issue Type: Bug
Components: JSF Controls
Affects Versions: 2.1.1.GA
Environment: Windows 7 + IE 8
Reporter: Vitaliy Tkachenko
formField.xhtml:
<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="decorated">
<s:label styleClass="name #{overiddenStyle}
#{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>
<span class="error">
<h:graphicImage value="/img/error.gif" rendered="#{invalid}"
styleClass="errors" />
<s:message id="message" styleClass="errors" />
</span>
</div>
</ui:composition>
Using formField.xhtml:
<s:decorate id="userNameField"
template="/includes/formField.xhtml">
<ui:define name="label">#{messages.login_username}</ui:define>
<h:inputText id="userName" required="true"
value="#{selectedUser.userName}" size="25"
maxlength="50"
readonly="#{not verifyUserAction.registeringUser}"
validator="#{verifyUserAction.verifyUserName}">
<a:support event="onblur" reRender="userNameField"
ajaxSingle="true"
bypassUpdates="true" />
</h:inputText>
</s:decorate>
selectedUser.userName in the model:
@Column(name = "user_name", unique = true, nullable = false, length = 50)
@NotNull
@Length(min = 4, max = 50)
@UserPrincipal
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
Seam in this case doesn't validate the user name control entry accordingly to
"@Length(min = 4, max = 50)" for example and let's submit 3 characters
length value, hibernate exception follows on the store procedure.
If the [validator="#{verifyUserAction.verifyUserName}] is cut from the userName field
the model validation will be performed.
There is a hack for this case: <s:validate/> can be added too into the userName
control and both hibernate and manual validators will be executed during the validation
procedure.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira