云自無心水自閑
天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
posts - 288, comments - 524, trackbacks - 0, articles - 6
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
Struts2中doubleselect的使用方法
Posted on 2008-03-27 22:08
云自無心水自閑
閱讀(12145)
評論(16)
編輯
收藏
所屬分類:
Java
、
心得體會
、
Struts2
在Struts2的官方網站上,有doubleselect的用法示例,但是那個例子比較簡單。
<s:doubleselect label="doubleselect test2" name="menu" list="#{'fruit':'Nice Fruits', 'other':'Other Dishes'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />
上面的例子演示了doubleselect的基本用法,但是其list和doubleList都是固定的。尤其是doublelist的切換使用了3目運算符 ? :,并沒有太大的實際使用價值。在實際應用中,list往往是action返回的一個List<DataObject>,listKey和listValue來顯示第一級下拉框,doubleList往往是一個Map<Integer, List<DataObject>>,其中Map中的Key值是第一級下拉框的listKey。
舉個例子:
Data Object:
public
class
Book
{
private
int
id;
private
String name;
private
int
categoryId;
//
getter and setter
..
}
public
class
Category
{
private
int
id;
private
String name;
//
getter and setter
..
}
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,果然成功了。
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
);
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..
}
評論
#
re: Struts2中doubleselect的使用方法[未登錄]
回復
更多評論
2008-03-28 12:43 by
allenny
Struts2很多標簽的用法要靠猜的,真是很郁悶
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-03-29 11:22 by
usherlight
是的,感覺struts2的文檔還是不夠詳細具體。
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-04-08 16:44 by
struts2
經測試這段代碼有以下幾個問題,
1、代碼第二行,
private Map<Integer, List<Book>> bookList;
應該是
private Map<Integer, List<Book>> bookMap;
2、book 里面只有一個值,由于沒有聲明book 類型為singleton,所有你存那么多值,最終在頁面最的時候只有一個,那就是 "Head First Design Patterns"
最后謝謝樓主給了我一個提示,最終解決了我的問題。
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-04-10 10:40 by
usherlight
謝謝你指出代碼中的錯誤。我這段代碼不是在Eclipse這樣的集成開發環境里寫的,所以出現了一些錯誤。
#
re: Struts2中doubleselect的使用方法[未登錄]
回復
更多評論
2008-04-14 18:09 by
阿偉
不知道為什么總是報:“FreeMarker template error!”的錯誤???
#
re: Struts2中doubleselect的使用方法[未登錄]
回復
更多評論
2008-04-14 18:17 by
阿偉
剛解決,<s:form 里面沒加name這個屬性,瘋掉....
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-06-26 10:05 by
wu
報模塊找不到的錯誤,
The module has not been deployed.
See the server log for details.
at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:174)
at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:104)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)
在netbeans中加入struts2,只加了最基本的5個jar包。偶是菜鳥。。。
完全不知道怎么解決。
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-06-27 13:12 by
usherlight
@wu
是在什么地方發現的這個錯誤?能說得再詳細一些嗎?
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-08-04 11:45 by
xingdian119
高手,拜托給看看這個問題,先謝謝啦。
http://www.javaeye.com/problems/2059
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-09-12 18:50 by
waylon
LZ我按照你上面寫的做了一下,結果不能成功
拋出了異常
嚴重: Servlet.service() for servlet jsp threw exception
tag 'doubleselect', field 'list': The requested list key 'categoryMap.get(top.id)' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
貌似這個標簽本身就有個缺陷......
(注:我的配置包就是最基本的5個,其他的配置也是正確的,而且也測試了多次,在網上也找了一些類似的資料,結果還是報錯)
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-09-12 18:50 by
waylon
我的struts.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"
http://struts.apache.org/dtds/struts-2.0.dtd">
<!-- struts 是struts2 的根元素 -->
<struts>
<!-- Struts2 的action 必須放在制定的包空間下定義 -->
<package name="login" extends="struts-default">
<action name="Login" class="org.waylon.DemoAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-09-12 18:53 by
waylon
index.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>dfsdfd</title>
<s:head />
</head>
<body>
<s:form action="Login" name="login">
<s:doubleselect list="categoryList" listKey="id" listValue="name"
doubleName="bookId" doubleList="bookMap.get(top.id)" doubleListKey="id" doubleListValue="name" theme="simple" formName="login"/>
</s:form>
</body>
</html>
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-09-12 18:54 by
waylon
然后3個java文件和你的一樣,但是就是運行不起....
不知道為什么?
望LZ給予解答
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-09-13 18:59 by
usherlight
@waylon
根據錯誤信息,錯誤是因為你的bookMap.get(top.id)返回的結果不是一個list,
那么需要檢查以下一些東西:
1. bookMap的值是否正確(bookMap是否為空,bookMap集合里的元素值是否正確)
2. top.id的值是否正確(也就是categoryList的值是否正確)
3. categoryList里的第一個值是否是bookMap里的一個鍵值
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-10-15 11:22 by
zgxer
listKey與doubleListKey 如何關聯,我好像沒法通過listkey篩選???
#
re: Struts2中doubleselect的使用方法
回復
更多評論
2008-10-21 19:24 by
usherlight
@zgxer
doubleSelect的運行原理是這樣的:
list屬性指定了一個list,這個list中的值可以是一個key-value對,也可以是一個JavaBean,如果是JavaBean,需要用listKey和listValue來指定list的key和value使用JavaBean中的哪個屬性。
doubleList也是一個list,但是如何實現聯動的呢?關鍵就是在于bookList的寫法是:top關鍵字的應用。在我的例子中是這樣的:doubleList="bookMap.get(top.id)",bookMap.get(top.id)返回的就是一個List,而且是根據top.id返回的List,top代表是就是list當前選中的對象。
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Selenium 下載文件
openpgp 驗證簽名
解決apache james 3.0 Beta5不能發送郵件的問題
簡單介紹如何使用PowerMock和Mockito來mock 1. 構造函數 2. 靜態函數 3. 枚舉實現的單例 4. 選擇參數值做為函數的返回值
簡要說明如何在eclipse中的tomcat中進行配置使用springloaded在熱加載更改的類
使用VisualVM來監控包裝為windows服務的java程序
將java.util.logging的日志統一輸出到slf4j的框架中
OpenPGP加密解密文件
Netty
Active MQ
Powered by:
BlogJava
Copyright © 云自無心水自閑
日歷
<
2008年3月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
留言簿
(3)
給我留言
查看公開留言
查看私人留言
隨筆分類
.Net(6)
Acegi(2)
Ajax(3)
AngularJS(5)
AngularJS
Appfuse(12)
Bootstrap(2)
Cairngorm(14)
Dojo(2)
Eclipse(3)
Extjs(2)
Flex(60)
Flex2(51)
FreeMarker(2)
GIMP(1)
Hibernate(2)
iBatis(9)
Java(129)
JFinal(1)
JQuery(3)
JSF(2)
MyBatis(2)
MySQL(4)
Netbeans(3)
Resin
RichFaces
Spring(4)
Spring Security(3)
SpringSide(2)
Struts2(21)
Tapestry(26)
XML(1)
壓縮文件
密碼(1)
心得體會(125)
數據庫(8)
隨筆檔案
2017年8月 (1)
2017年6月 (2)
2017年5月 (1)
2017年3月 (1)
2017年2月 (1)
2016年12月 (2)
2016年11月 (2)
2016年10月 (1)
2016年9月 (3)
2016年8月 (2)
2016年6月 (1)
2016年5月 (1)
2016年4月 (2)
2016年3月 (1)
2016年2月 (2)
2016年1月 (1)
2015年12月 (1)
2015年11月 (3)
2015年10月 (3)
2015年8月 (2)
2015年7月 (1)
2015年6月 (3)
2015年4月 (2)
2015年3月 (1)
2015年2月 (5)
2015年1月 (6)
2014年12月 (1)
2014年11月 (2)
2014年2月 (1)
2014年1月 (3)
2013年12月 (1)
2013年10月 (1)
2013年8月 (2)
2013年3月 (1)
2012年11月 (2)
2012年10月 (1)
2012年9月 (2)
2011年8月 (4)
2011年6月 (1)
2011年5月 (1)
2011年3月 (1)
2011年2月 (1)
2011年1月 (1)
2010年12月 (2)
2010年11月 (3)
2010年10月 (1)
2010年9月 (1)
2010年8月 (2)
2010年7月 (4)
2010年6月 (6)
2010年5月 (1)
2010年4月 (1)
2010年3月 (6)
2010年2月 (4)
2010年1月 (4)
2009年12月 (1)
2009年11月 (1)
2009年10月 (2)
2009年9月 (3)
2009年8月 (4)
2009年7月 (3)
2009年6月 (4)
2009年5月 (6)
2009年4月 (4)
2009年1月 (1)
2008年12月 (10)
2008年11月 (2)
2008年9月 (1)
2008年8月 (2)
2008年7月 (2)
2008年6月 (1)
2008年5月 (1)
2008年4月 (2)
2008年3月 (3)
2008年2月 (7)
2008年1月 (3)
2007年12月 (2)
2007年9月 (4)
2007年8月 (3)
2007年7月 (4)
2007年6月 (1)
2007年5月 (1)
2007年4月 (11)
2007年3月 (15)
2007年2月 (11)
2007年1月 (8)
2006年12月 (9)
2006年11月 (3)
2006年10月 (4)
2006年9月 (6)
2006年8月 (3)
2006年6月 (2)
2006年5月 (1)
2006年4月 (3)
2006年3月 (16)
2006年2月 (5)
最新隨筆
1.?記錄備忘
2.?plugin manage for 64 bit notepadd++
3.?Remote Git Server migration
4.?一些小工具
5.?一個好用的小工具AutoHotKey
6.?First Vue.js html page
7.?SLF4J 打印數組
8.?mysql遺忘root密碼
9.?Eclipse啟動時update indexes很慢
10.?從pdf文件中提取文本
積分與排名
積分 - 1125362
排名 - 27
最新評論
1.?re: 使用AngularJS與服務器通訊
qwerqwer
--ewrqer
2.?re: OpenPGP加密解密文件
還是直接拿源碼包中的 兩個實例代碼,直接運行就OK,這個類改的,解密文件跳過去了。
--vigo
3.?re: Struts2利用stream直接輸出Excel
dsaasdsadsadd as
--sad
4.?re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數據庫工具)的破解手記[未登錄]
評論內容較長,點擊標題查看
--s
5.?re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數據庫工具)的破解手記[未登錄]
可以使用
--s
閱讀排行榜
1.?連接Oracle 10g時ORA-12514: TNS: 監聽進程不能解析在連接描述符中給出的 SERVICE_NAME 錯誤的解決(273838)
2.?Extjs Tree + JSON + Struts2 (43643)
3.?Java Swing界面如何動態調整大小(自適應)(21794)
4.?簡單介紹如何使用PowerMock和Mockito來mock 1. 構造函數 2. 靜態函數 3. 枚舉實現的單例 4. 選擇參數值做為函數的返回值(18458)
5.?一些小工具(17851)
6.?Flex與JavaScript的交互:調用JavaScipt或者被JavaScript調用(16569)
7.?struts2使用iterator標簽顯示嵌套Map(15300)
8.?DevExpress的XtraReports使用心得(幫助文檔)(14520)
9.?在java程序中訪問windows有用戶名和密碼保護的共享目錄(12984)
10.?Struts2 and Ajax --使用Dojo和Div(12239)
評論排行榜
1.?連接Oracle 10g時ORA-12514: TNS: 監聽進程不能解析在連接描述符中給出的 SERVICE_NAME 錯誤的解決(50)
2.?Extjs Tree + JSON + Struts2 (49)
3.?SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數據庫工具)的破解手記(23)
4.?Struts2中doubleselect的使用方法(16)
5.?JRebal(原名JavaRebel)破解小記(16)
主站蜘蛛池模板:
一区二区免费国产在线观看
|
97在线视频免费播放
|
亚洲欧洲国产精品香蕉网
|
精品视频在线免费观看
|
中文字幕亚洲综合小综合在线
|
亚洲高清无码在线观看
|
a毛片全部免费播放
|
亚洲日产2021三区在线
|
亚洲AV永久无码精品一区二区国产
|
免费黄网站在线观看
|
亚洲人xxx日本人18
|
亚洲综合色成在线播放
|
色老头永久免费网站
|
免费看一级高潮毛片
|
亚洲福利视频网站
|
亚洲精品视频免费观看
|
亚洲成人免费网址
|
国产人成网在线播放VA免费
|
亚洲一卡2卡4卡5卡6卡在线99
|
国产亚洲精品激情都市
|
中字幕视频在线永久在线观看免费
|
精品国产免费一区二区三区
|
最新亚洲春色Av无码专区
|
亚洲精品高清国产一线久久
|
在线a人片天堂免费观看高清
|
久99久精品免费视频热77
|
美女羞羞喷液视频免费
|
亚洲国产精品xo在线观看
|
亚洲国产精品自产在线播放
|
国产一级淫片a免费播放口之
|
无码国产精品一区二区免费式芒果
|
国产精品无码亚洲精品2021
|
亚洲宅男天堂a在线
|
伊伊人成亚洲综合人网7777
|
永久黄网站色视频免费直播
|
51精品视频免费国产专区
|
中文字幕永久免费
|
真正全免费视频a毛片
|
亚洲熟女www一区二区三区
|
亚洲蜜芽在线精品一区
|
国产AV无码专区亚洲Av
|