1. 程式人生 > >Struts2中 s:select 標籤相關使用

Struts2中 s:select 標籤相關使用

本沒有想總結這個標籤的,感覺也就那樣,但是確實這個標籤用的太多了,因此還是簡單總結一下

這裡列舉幾個常用的屬性吧:

1、name:用來作為Action中取值的屬性

2、id:可能要做某些取值操作

3、list:在後臺或者自定義的一個取值集合

4、listKey:標籤的key值,也就是我們後臺要獲取到的key(一般不會用value來作為條件。)

5、listValue:標籤的value值,也就是標籤在選擇的時候,會顯示的具體的一個值的解釋(比如地區,key=1 , value=“中國”,那麼就會顯示“中國”這個在介面上,而看不到1)

6、headerKey:預設的key值,一般設為"",0,或者-1等

7、headerValue:預設的value值,一般設為“請選擇”等(自定義就好)

以上就是在s:select標籤中常用的幾個屬性了,接下來就來分析使用下吧:

1、直接在jsp進行定義(不經過後臺傳值進來的)

<s:select name="movie" list="#{1:'火影忍者',2:'海賊王',3:'盜墓筆記',4:'銀魂'}" listKey="key" listValue="value" headerKey="0" headerValue="請選擇"></s:select>

這樣,在後臺,我們就能夠通過定義:  private String movie; 然後給出get, set方法就能夠在Action中獲取到movie這個欄位的key值;例如:

public class MovieAction extends BaseAction<Movie> {
	private String movie;
        
        public String save() {
                   // 這裡就能夠直接獲取到movie的值,並直接用movie進行操作
                   System.out.println(movie);
        }

        public String getMovie() {
                   return movie;
        }

        public void setMovie(String movie) {
                  this.movie = movie
        }
}


2、首先通過後臺來查詢到一個list/map集合,然後將該集合傳到jsp,在jsp直接用s:select標籤來獲取list,並顯示即可:

public class MovieAction extends BaseAction<Movie> {

        // 定義接受下拉框的集合,並給出get,set方法
        List<AppVo> appVos = new ArrayList<AppVo>(); 

        // 這是跳轉到新增頁面的方法
	public String toAdd() throws Exception
	{
                // 資料庫查詢App的一個集合,並儲存到集合appVos集合中,並返回,資料庫查詢為:select appId, name from app (只查詢了appId和name兩個欄位)
		appVos = appBo.getAppList(appVo);
		return SUCCESS;
	}

        public List<AppVo> getAppVos() {
		return appVos;
	}

	public void setAppVos(List<AppVo> appVos) {
		this.appVos = appVos;
	}
}

接下來到jsp頁面, 直接用 s:select 標籤來獲取即可,如下:
<!-- name為返回後臺接收下拉框的變數值;list為後臺傳過來的集合,直接取即可;listKey為資料庫查詢的要用來作為key的名稱,這裡是appId;listValue為下拉框要顯示的名稱,這裡為name;headerKey和headerValue看上面介紹 -->
<s:select name="appId" list="appVos" listKey="appId" listValue="name" headerKey="" headerValue="請選擇"></s:select>
這樣,我們在後臺,其實就能夠通過利用上面所說的在定義一個appId變數到後臺,並給出get,set方法就能夠獲取到appId屬性值

總結完了。其他的後續再補充~