本没有想总结这个标签的,感觉也就那样,但是确实这个标签用的太多了,因此还是简单总结一下
这里列举几个常用的属性吧:
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属性值
总结完了。其他的后续再补充~
更多精彩敬请关注公众号
Java极客思维
微信扫一扫,关注公众号