舉個例子:
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元素裡需要顯示的選項的個數