Struts2中 s:select 标签相关使用

来源:互联网 发布:python中hasattr 编辑:程序博客网 时间:2024/06/06 02:16

本没有想总结这个标签的,感觉也就那样,但是确实这个标签用的太多了,因此还是简单总结一下


这里列举几个常用的属性吧:

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进行定义(不经过后台传值进来的)

[html] view plain copy
  1. <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值;例如:

[java] view plain copy
  1. public class MovieAction extends BaseAction<Movie> {  
  2.     private String movie;  
  3.           
  4.         public String save() {  
  5.                    // 这里就能够直接获取到movie的值,并直接用movie进行操作  
  6.                    System.out.println(movie);  
  7.         }  
  8.   
  9.         public String getMovie() {  
  10.                    return movie;  
  11.         }  
  12.   
  13.         public void setMovie(String movie) {  
  14.                   this.movie = movie  
  15.         }  
  16. }  


2、首先通过后台来查询到一个list/map集合,然后将该集合传到jsp,在jsp直接用s:select标签来获取list,并显示即可:

[java] view plain copy
  1. public class MovieAction extends BaseAction<Movie> {  
  2.   
  3.         // 定义接受下拉框的集合,并给出get,set方法  
  4.         List<AppVo> appVos = new ArrayList<AppVo>();   
  5.   
  6.         // 这是跳转到新增页面的方法  
  7.     public String toAdd() throws Exception  
  8.     {  
  9.                 // 数据库查询App的一个集合,并保存到集合appVos集合中,并返回,数据库查询为:select appId, name from app (只查询了appId和name两个字段)  
  10.         appVos = appBo.getAppList(appVo);  
  11.         return SUCCESS;  
  12.     }  
  13.   
  14.         public List<AppVo> getAppVos() {  
  15.         return appVos;  
  16.     }  
  17.   
  18.     public void setAppVos(List<AppVo> appVos) {  
  19.         this.appVos = appVos;  
  20.     }  
  21. }  

接下来到jsp页面, 直接用 s:select 标签来获取即可,如下:

[html] view plain copy
  1. <!-- name为返回后台接收下拉框的变量值;list为后台传过来的集合,直接取即可;listKey为数据库查询的要用来作为key的名称,这里是appId;listValue为下拉框要显示的名称,这里为name;headerKey和headerValue看上面介绍 -->  
  2. <s:select name="appId" list="appVos" listKey="appId" listValue="name" headerKey="" headerValue="请选择"></s:select>  


这样,我们在后台,其实就能够通过利用上面所说的在定义一个appId变量到后台,并给出get,set方法就能够获取到appId属性值