[ 
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)

Reply via email to