本没有想总结这个标签的,感觉也就那样,但是确实这个标签用的太多了,因此还是简单总结一下
这里列举几个常用的属性吧:
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() {
-
- 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> {
-
-
- List<AppVo> appVos = new ArrayList<AppVo>();
-
-
- public String toAdd() throws Exception
- {
-
- appVos = appBo.getAppList(appVo);
- return SUCCESS;
- }
-
- public List<AppVo> getAppVos() {
- return appVos;
- }
-
- public void setAppVos(List<AppVo> appVos) {
- this.appVos = appVos;
- }
- }
接下来到jsp页面, 直接用 s:select 标签来获取即可,如下:
-
- <s:select name="appId" list="appVos" listKey="appId" listValue="name" headerKey="" headerValue="请选择"></s:select>
这样,我们在后台,其实就能够通过利用上面所说的在定义一个appId变量到后台,并给出get,set方法就能够获取到appId属性值