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