I agree with Tim. Documentation says that the default is auto and does not require the model to be set in order to pass the submission process.
I think it's a bug. As you can see in the select component code <https://github.com/apache/tapestry-5/blob/master/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Select.java#L284-306> (line 292), if the secure option is set to AUTO and the model is null then the form doesn't validate the options against the select model. But the problem is that the model parameter <https://github.com/apache/tapestry-5/blob/master/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Select.java#L107-108> doesn't allow null value. That's also why the error is confusing, it cannot reach line 300 in the toValue method which would throw a much clearer error. 2014-11-17 17:44 GMT+01:00 Thiago H de Paula Figueiredo <[email protected]> : > On Mon, 17 Nov 2014 10:41:20 -0200, D Tim Cummings <[email protected]> > wrote: > > Thanks. That wasn’t my question but it does help me. With >> secure="always", I would need the model for render and form submission. So >> according to what you are saying I could init the model in onActivate() OR >> onPrepare() OR (onPrepareForSubmit() AND setupRender()). >> > > I'd use onPrepare(), as it's the only one that always gets invoked when > rendering and before handling form submissions. > > Or just have a getter that inits and returns the model. That's what I > usually do. > > My actual question is why do I need to init the model in one of these >> methods for secure="auto" or the default secure attribute (which is >> supposed to be backward compatible)? >> > > This is done so Select never gives a value to your edited property that > isn't in the list of valid value (SelectModel). > > -- > Thiago H. de Paula Figueiredo > Tapestry, Java and Hibernate consultant and developer > http://machina.com.br > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
