[
https://issues.apache.org/jira/browse/TAP5-1718?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14019367#comment-14019367
]
Hudson commented on TAP5-1718:
------------------------------
SUCCESS: Integrated in tapestry-trunk-freestyle #1233 (See
[https://builds.apache.org/job/tapestry-trunk-freestyle/1233/])
Client validation was missing validations from annotations. TAP5-1718
(thiagohp: rev 7c9a72cfb5e2e23eaf00a36f1a01ab9186928fef)
* tapestry-beanvalidator/src/test/webapp/NestedObjectDemo.tml
*
tapestry-beanvalidator/src/main/java/org/apache/tapestry5/internal/beanvalidator/BeanFieldValidator.java
*
tapestry-beanvalidator/src/test/java/org/example/testapp/pages/NestedObjectDemo.java
*
tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java
* tapestry-beanvalidator/src/test/webapp/Index.tml
> Tapestry-beanvalidator isn't validating nested DTO objects / Doesn't mark the
> invalid fields in the UI
> ------------------------------------------------------------------------------------------------------
>
> Key: TAP5-1718
> URL: https://issues.apache.org/jira/browse/TAP5-1718
> Project: Tapestry 5
> Issue Type: Improvement
> Components: tapestry-beanvalidator
> Affects Versions: 5.2
> Reporter: Matthias Melitzer
> Assignee: Thiago H. de Paula Figueiredo
> Labels: binding, jsr-303, month-of-tapestry, parameter,
> tapestry-beanvalidator, validation, validationdecorator
> Fix For: 5.4, 5.3.8
>
>
> Tapestry-beanvalidator isn't validating nested objects correctly, the problem
> is that component parameters i.e. the TextField#value is only bound to the
> attribute itself but doesn't contain the full objectpath, so using a DTO like:
> class TestDTO {
> @NotNull
> private String firstName;
> @Valid
> private EmbeddedObject embeddedObject;
> ...
> }
> class EmbeddedObject {
> @NotNull
> private String lastName;
> ...
> }
> Using the TestDTO on a page in the following way:
> class MyPage{
> ...
> @Property
> private TestDTO testDTO;
> @Component(parameters = {"validate=testDTO"})
> private Form form;
> @Component(parameters = {"value=testDTO.firstName"})
> private TextField firstName;
> @Component(parameters = {"value=testDTO.embeddedObject.lastName"})
> private TextField embeddedField;
> ...
> }
> Submitting the form validates all the attributes correctly (also the embedded
> object validation error is listed in the t:errors component) but when it
> comes to BeanFieldValidator only lastName is on the Environment Stack in the
> BeanValidationContext. As TestDTO doesn't contain the property lastName and
> there's no objectpath available it doesn't traverse down the objects and
> can't assign the correct validation error.
> The outcome is that even the property is validated correctly, there's no
> red-frame (css error class) on the appropriate field in the UI.
> For reference:
> http://tapestry.1045711.n5.nabble.com/tapestry-beanvalidation-td4921787.html
--
This message was sent by Atlassian JIRA
(v6.2#6252)