[ 
https://issues.apache.org/jira/browse/TAP5-1718?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thiago H. de Paula Figueiredo resolved TAP5-1718.
-------------------------------------------------

       Resolution: Fixed
    Fix Version/s: 5.4

> 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, parameter, tapestry-beanvalidator, 
> validation, validationdecorator
>             Fix For: 5.4
>
>
> 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.1.5#6160)

Reply via email to