锁定老帖子 主题:tapestry5中select的用法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-02
dengyin2000 写道 jamesby 写道 引用 Model的实现类是可以自己实现的。
是可以自己实现,不过tapestry对这个基本的组件总该有个实现吧,有些奇怪。 当然有。 应该同checkbox差不多吧 |
|
返回顶楼 | |
发表时间:2007-05-23
public SelectModel getUsersModel() {
return new UsersModel(getUsers()); } public class UsersModel implements SelectModel { private List<User> Users; public UsersModel(List<User> Users) { this.Users = Users; } public List getOptionGroups() { return null; } public List getOptions() { List optionModelList = new ArrayList(); for (User User : Users) { optionModelList.add(new OptionModelImpl(User.getName(), false, User, new String[0])); } return optionModelList; } } |
|
返回顶楼 | |
发表时间:2007-05-23
我发现在使用encoder的时候会导致select选不中的问题:
<select t:type="select" t:id="user" name="user" value="userName" model="usersModel" encoder="usersEncoder" onChange="this.form.submit();" style="width:300"></select> public ValueEncoder getUsersEncoder() { return new UserValueEncoder(getUsers()); } public class UserValueEncoder implements ValueEncoder { private List<User> Users; public UserValueEncoder(List<User> Users) { this.Users = Users; } public String toClient(Object User) { /*return ((User) User).getName();*/ return (String)User; } public User toValue(String name) { for (User User : Users) { if (User.getName().equals(name)) { return User; } } System.out.println("null"); return null; } } 如果不使用encoder,提交后的页面会显示上次选择的option,对于multiple="true"的情况下怎样default select? |
|
返回顶楼 | |
发表时间:2007-05-23
现在的框架太多了,精通几个就够用了,学那么多太类了。
|
|
返回顶楼 | |