struts2中s:select標籤從前後臺的取值
1.第一種:
<s:select list="{'aa','bb','cc'}" headerKey="00" headerValue="0"></s:select>
2.第二種:
<s:select list="#{1:'aa',2:'bb',3:'cc'}" label="abc" listKey="key" listValue="value" headerKey="0" headerValue="-1">
3.第三種(從資料庫讀資料)
action中:
public class ServiceRelease {
private ProvidingService ps;
private List<ProvidingService> listPS = new ArrayList<ProvidingService>();
生成get()/set()方法
public String getServiceRelease(){//action,頁面會呼叫此action
listPS = serviceManageService.getService(); //getService(); 是我查詢資料庫所有服務的方法
return "test"; //通過struts2跳轉頁面
}
}
struts2.xml檔案中:
<package name="servicemanage" extends="default" namespace="/servicemanage">
<action name="servicerelease" class="serviceRelease"><!--serviceRelease我是通過spring配置action路徑的,這可以直接寫,如:com.hp.cop.servicemanage.action.ServiceRelease-->
<result name="test">
/testList.jsp <!--跳到testList.jsp頁面-->
</result>
</package>
testList.jsp頁面:
<body>
<s:action name="servicerelease!getServiceRelease" namespace="/servicemanage" id="bean" />
<s:select headerValue="--Please select--" headerKey="0"
list="#bean.listPS" name="" listKey="id" listValue="serviceName"></s:select>
</body>
***注意引入struts2的標籤庫
<%@ taglib prefix="s" uri="/struts-tags"%>
解析上面的程式碼:
<s:select>標籤,解釋下這個標籤屬性:
(1)struts2中的select 標籤中,必須設定的屬性只有一個,即是list。
(2)select標籤的list中必須有值,不然會報錯。如果沒有值,可以加上headerKey, headerValue,這樣就可以通過了。
headerValue :
預設值value
headerKey :
預設name
即使list中有值,我們也通常會加上headerKey, headerValue,即列表中顯示的第一個選項。注意,headerKey不可以為空,不可以為-1
list :
通常是在action中定義的,必須是一個可以迭代的源,如為一個List, Map, Set等。如果是一個Map,那麼map的key就對應於select標籤中的value,map中的value就對應於select標籤中的option。而如果是一個List或者是一個Set,那麼可以通過listKey和listValue指定。
name : 被選資料存放的位置(action中可以通過name值獲取我們所選中的值)
listKey : 下拉選項的name
listValue : 下拉選項的value
listKey即對應於普通select標籤中的value值, listValue即對應於普通select標籤中的option所顯示的值
value : 預設值
一個下拉列表往往是可以重複使用的,那麼我們將它單獨定義到一個action中,這裡我的action的namespace是servicemanage,所以如我們上面定義的<s:action>標籤:
name : 源資料名(這裡我的為 servicerelease!getServiceRelease ,也就是 名稱空間!action名(注意是感嘆號))
namespace : 我們在struts.xml中定義的name(我定義的為 servicerelease)
id : 相當於別名(在後面呼叫該actiond的時候直接用#號使用)