Hi, I use a custom select model based on an AbstractSelectModel and using a custom ValueEncoder. When running the code I get this here generated (newlines added by me *g*):
| <select id="salution" name="salution" tabindex="10"> | <option foo="bar" selected="selected" value="null">bitte wählen...< | option disabled="disabled" selected="selected" value="null">---------------< | option value="MR">Herr< | option value="MRS">Frau | </select>< | img alt="[Error]" class="t-error-icon t-invisible" id="salution:icon" | src="/my-application-foo/assets/tapestry/field-error-marker.png"> As you see the first two options have the attribute "selected" which is of course not what I want. Now I wonder is this a bug or a feature (i.e. my bug *g*)? Cheers, Martin <-------------- snip / my code ----------------> The relevant snippet from the template looks like this: | <select name="salutation" id="salutation" tabindex="10" | t:type="select" | t:id="salution" | t:encoder="salutationValueEncoder" | t:model="salutationModel" | t:value="contact.salutation"> | <option selected="selected">bitte wählen...</option> | <option disabled="disabled">---------------</option> | <option>Herr</option> | <option>Frau</option> | </select> This is the selectmodel: | public final class SalutationSelectModel extends AbstractSelectModel { | | private final Messages _msgs; | | public SalutationSelectModel( final Messages msgs ) { | _msgs = msgs; | } | | public List<OptionGroupModel> getOptionGroups() { | return null; | } | | public List<OptionModel> getOptions() { | final List<OptionModel> result = new ArrayList<OptionModel>(); | result.add( new OptionModelImpl( _msgs.get( "select_pleaseSelect" ), | false, null, new String[0] ) ); | result.add( new OptionModelImpl( _msgs.get( "select_separator" ), | true, null, new String[0] ) ); | for( Salutation salut : Salutation.values() ) { | result.add( new OptionModelImpl( _msgs.get( "salutation_" + salut.name() ), | false, salut, new String[0] ) ); | } | | return result; | } | | } And (if at all relevant) the valueencoder: | public class SalutationValueEncoder implements ValueEncoder<Salutation> { | | public String toClient( Salutation value ) { | if ( value == null ) | return "null"; | return value.name(); | } | | public Salutation toValue( String clientValue ) { | if ( "null".equals( clientValue ) ) | return null; | return Salutation.valueOf( clientValue ); | } | | } -- ------------- / http://herbert.the-little-red-haired-girl.org / ------------- =+= Was ist ein Cluster? Wenn vier Bratscher unisono spielen. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]