|
举个例子: Data Object:
public class Book { private int id; private String name; private int categoryId;
}
public class Category { private int id; private String name;
}
JSP: <s:doubleselect list="categoryList" listKey="id" listValue="name" doubleName="bookId" doubleList="bookMap.get(top.id)" doubleListKey="id" doubleListValue="name" theme="simple"/>
此处要注意的是top的用法,开始我以为top就是指代list的值,所以使用的是bookMap.get(top),但是二级下拉框一直是空白,后来我突然想到说不定top是一个Category实例呢,尝试了一下top.id,果然成功了。需要着重注意的是dobuleList的获值方法,id为List属性循环的ListKey的值。
Action:
public class DemoAction { private Map<Integer, List<Book>> bookMap; private List<Category> categoryList;
public String execute() throws Exception { categoryList = new ArrayList<Cateogry>();
Category category; category = new Category(); category.setId(1); category.setName("Fiction"); categoryList.add(category); category = new Category(); category.setId(2); category.setName("Java"); categoryList.add(category);
bookMap = new HashMap<Integer, List<Book>>();
List<Book> bookList = new ArrayList<Book>(); Book book; book = new Book(); book.setId(1);//该出的1为Category的id,根据Category的id获得对应的book book.setName("Harry Porter"); book.setCategoryId(1); bookList.add(book);
book = new Book(); book.setId(2); book.setName("Nightmare"); book.setCategoryId(1); bookList.add(book);
bookMap.put(1, bookList);
bookList = new ArrayList<Book>(); book = new Book(); book.setId(3); book.setName("Thinking in Java"); book.setCategoryId(2); bookList.add(book); book = new Book(); book.setId(4); book.setName("Head First Design Patterns"); book.setCategoryId(2); bookList.add(book);
bookMap.put(2, bookList);
return SUCCESS; }
// getter and setter.. }
名 字 数据类型 默 认 值 说 明
doubleCssClass String 用来呈现第二个select元素的CSS类
doubleCssStyle String 用来呈现第二个select元素的CSS样式
doubleDisabled boolean false 是否禁用第二个select元素
doubleEmptyOption false 是否要在第二个select元素里插入一个空白选项
doubleHeaderKey String 第二个select元素的标题的键
doubleHeaderValue String 第二个select元素的标题的值
doubleId String 第二个select元素的标识符
doubleList* String 用来充当第二个select元素的选项来源的可遍历对象
doubleListKey String 为第二个select元素提供选项值的对象属性
doubleListValue String 为第二个select元素提供选项行标的对象属性
doubleMultiple boolean false 是否允许用户在第二个select元素里进行“多选多”选择
doubleName* String 第二个select元素的名字
doubleSize integer 在第二个select元素里需要显示的选项的个数
doubleValue String 第二个select元素的值
emptyOption boolean false 是否要在第一个select元素里插入一个空白选项
formName String 包含这个组件的表单的名字
headerKey String 第一个select元素里的标题的键
headerValue 第一个select元素里的标题的值
list 用来充当第一个select元素的选项来源的可遍历对象
listKey String 为第一个select元素提供选项值的对象属性
listValue String 为第一个select元素提供选项行标的对象属性
multiple boolean false 是否允许用户在第一个select元素里进行“多选多”选择
size integer 在第一个select元素里需要显示的选项的个数
|