条纹错误未出现在表单中的文本字段中
Stripes error not appearing on text field in form
我有一个要验证的 phone 数字组件,但出于某种原因,我无法让条纹验证错误显示在 phone 数字字段上形式。如果我在表单 外部 显示标签,则会显示错误,但它们不会附加到字段。
<e:declare-component name="PhoneNumberForm" css="true" js="true">
<stripes:errors /> <%-- This tag displays errors --%>
<e:sslform id="submit-phone-number-form" action="${componentContext.action}">
<div class="phone-wrapper">
<stripes:text name="phoneNumber" id="phoneNumber" class="TextInput" />
<stripes:errors field="phoneNumber" /> <%-- This tag DOES NOT display errors --%>
</div>
...
</e:sslform>
</e:declare-component>
表单提交给扩展 ActionBean 并实现 ValidationErrorHandler 的 java class。我看到正在调用验证方法,并且 ValidationErrors 不为空(它包含 phone 数字验证错误。)
需要注意的事项:当我将表单更改为提交到 beanclass 而不是操作时,错误字段显示正确;但是,这不是我的解决方案,因为该组件在代码库的其他地方使用。 beanclass 和 action 有什么区别?
关于为什么的任何想法?谢谢!
当 stripes:error
标签嵌套在 stripes:form
标签内时,显示的错误将仅是发布表单时产生的错误。相反,可以说,因为没有包含 stripes:form
,所以不清楚 phone 数字验证错误的结果是什么操作。
您可以尝试为 stripes:errors
标签提供 action
属性:
<stripes:errors field="phoneNumber" action="${componentContext.action}"/>
只是为了告诉 Stripes 错误消息必须来自哪个表单操作。
我自己从未尝试过,但值得一试。
我有一个要验证的 phone 数字组件,但出于某种原因,我无法让条纹验证错误显示在 phone 数字字段上形式。如果我在表单 外部 显示标签,则会显示错误,但它们不会附加到字段。
<e:declare-component name="PhoneNumberForm" css="true" js="true">
<stripes:errors /> <%-- This tag displays errors --%>
<e:sslform id="submit-phone-number-form" action="${componentContext.action}">
<div class="phone-wrapper">
<stripes:text name="phoneNumber" id="phoneNumber" class="TextInput" />
<stripes:errors field="phoneNumber" /> <%-- This tag DOES NOT display errors --%>
</div>
...
</e:sslform>
</e:declare-component>
表单提交给扩展 ActionBean 并实现 ValidationErrorHandler 的 java class。我看到正在调用验证方法,并且 ValidationErrors 不为空(它包含 phone 数字验证错误。)
需要注意的事项:当我将表单更改为提交到 beanclass 而不是操作时,错误字段显示正确;但是,这不是我的解决方案,因为该组件在代码库的其他地方使用。 beanclass 和 action 有什么区别?
关于为什么的任何想法?谢谢!
当 stripes:error
标签嵌套在 stripes:form
标签内时,显示的错误将仅是发布表单时产生的错误。相反,可以说,因为没有包含 stripes:form
,所以不清楚 phone 数字验证错误的结果是什么操作。
您可以尝试为 stripes:errors
标签提供 action
属性:
<stripes:errors field="phoneNumber" action="${componentContext.action}"/>
只是为了告诉 Stripes 错误消息必须来自哪个表单操作。
我自己从未尝试过,但值得一试。