您的位置:首页 > 编程语言 > Java开发

struts2——s:select标签!!!

2010-10-21 10:17 260 查看
struts2 UI标签的缺点:
1)struts2会自动给ui标签加上样式,要改变它非常麻烦。
2)struts2的ui标签和javascript结合不是很好。
3)有些ui标签存在bug和很多怪异的想象,不好调试和控制。
struts2的ui标签有四种主题(theme):simple,xhtml(默认),css_xhtml,ajax。
Simple主题是不带样式的,一般使用它。

select:
(1)struts2中的select 标签中,必须设置的属性只有一个,即是list。
(2)select标签的list中必须有值,不然会报错。如果没有值,可以加上headerKey, headerValue,这样就可以通过了。其中,即使list中有值,我们也通常会加上headerKey, headerValue,即列表中显示的第一个选项。
(3)list属性,通常是在action中定义的,必须是一个可以迭代的源,如为一个List, Map, Set等。如果是一个Map,那么map的key就对应于select标签中的value,map中的value就对应于select标签中的option。而如果是一个List或者是一个Set,那么可以通过listKey和listValue指定。
(4)listKey即对应于select标签中的value, listValue即对应于select标签中的option。
(5)name属性,即是表单中select的name。id属性,即是表单中select的id。

下面是一个例子:
action类
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;
import com.opensymphony.xwork2.ActionSupport;
public class UIAction extends ActionSupport {
private Vector vector;
private Map map;
public String execute() throws Exception {
UserInfo u1 = new UserInfo("1", "张三");
UserInfo u2 = new UserInfo("2", "李四");
UserInfo u3 = new UserInfo("3", "王五");
vector = new Vector();
vector.add(u1);
vector.add(u2);
vector.add(u3);
map = new HashMap();
map.put("101", "小张");
map.put("102", "小李");
map.put("103", "小王");
return "success";
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public Vector getVector() {
return vector;
}
public void setVector(Vector vector) {
this.vector = vector;
}
}


dto类

public class UserInfo {
private String userno;
private String username;
public UserInfo() {}
public UserInfo(String userno, String username) {
this.userno = userno;
this.username = username;
}
public String getUserno() {
return userno;
}
public void setUserno(String userno) {
this.userno = userno;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}


jsp:
<s:select
id="vectorid"
name="vectorname"
list="vector"
listKey="userno"
listValue="username"
headerKey="-1"
headerValue="请选择"
/>
<hr/>
<s:select
id="mapid"
name="mapname"
list="map"
listKey="key"
listValue="value"
headerKey="-1"
headerValue="请选择"
/>


html源码:
<select name="vectorname" id="vectorid">
<option value="-1">请选择</option>
<option value="1">张三</option>
<option value="2">李四</option>
<option value="3">王五</option>
</select>

<select name="mapname" id="mapid">
<option value="-1">请选择</option>
<option value="103">小王</option>
<option value="102">小李</option>
<option value="101">小张</option>
</select>


效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: