Why not use an enum and BeanEditForm? Olle
2008/12/20 dwi ardi irawan <penyihirke...@gmail.com> > hi all....i got a little problem here > > i want to make this into a select component : > if the label is "user" then the value would be : 0(Integer) > if the label is "administrator" then the value would be : 1(Integer) > > i did that in this way : > *User.java* > private String username; > private String password > private Integer status; > ...... > > *userForm.tml* > <tr> > <td><t:label for="statusSelect"/></td> > <td> :</td> > <td><t:select t:id="statusSelect" model="statusSelectionModel" > value="User.status" encoder="statusValueEncoder" label="Status"/></td> > </tr> > > *userForm.java* > ...... > @Property > private User user; > ...... > > public List<String> getStatusList() { > if(statusList==null){ > statusList = new ArrayList<String>(); > statusList.add("user"); > statusList.add("administrator"); > } > return statusList; > } > public StatusSelectionModel getStatusSelectionModel() { > return new StatusSelectionModel(getStatusList()); > } > > public ValueEncoder<Integer> getStatusValueEncoder(){ > return new StringValueEncoder(); > } > > *StatusSelectionModel.java* > > public class StatusSelectionModel implements SelectModel{ > > private List<String> statusList; > > public StatusSelectionModel(List<String> formationList){ > this.statusList = formationList; > } > public List<OptionGroupModel> getOptionGroups() { > return getSelectModel().getOptionGroups(); > } > > public List<OptionModel> getOptions() { > return getSelectModel().getOptions(); > } > > public void visit(SelectModelVisitor visitor) { > getSelectModel().visit(visitor); > > } > > public SelectModel getSelectModel() { > List<OptionModel> optionModelList = new ArrayList<OptionModel>(); > > > for(String status: statusList) { > if(status.equals("user")){ > optionModelList.add(new OptionModelImpl(status,new > Integer(0))); > }else if (status.equals("administrator")) { > optionModelList.add(new OptionModelImpl(status,new > Integer(1))); > } > > } > return new SelectModelImpl(null, optionModelList); > } > > } > > *StringValueEncoder .java* > public class StringValueEncoder implements ValueEncoder<Integer> { > > public String toClient(Integer value) { > return value.toString(); > } > > public Integer toValue(String value) { > // TODO Auto-generated method stub > return Integer.parseInt(value); > } > > } > > > but i got following error when i tried to submit it : > > *Failure writing parameter 'value' of component UserFormPage:statusselect: > Coercion of user to type java.lang.Integer (via String --> Long, Long --> > Integer) failed: For input string: "user"* > > > * > * > > could somebody help me > > > thnx u very much > > -- > http://dwiardiirawan.blogspot.com > "cos everyone could be extraordinary...lighten up !" > -- Olle Hallin Senior Java Developer and Architect olle.hal...@crisp.se www.crisp.se