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

struts2——s:doubleselect标签!!!

2010-10-21 10:34 197 查看
doubleselect:
1)<s:doubleselect标签必须要放在<s:form>里面。
2) <s:doubleselect标签默认是竖着显示,要横着显示也很麻烦,要覆盖strut2的css或者覆盖struts2的方法。3)在使用<s:doubleselect标签的时候加上headerKey和headerValue属性出现显示不完整的情况。
4)一级列表需要一个list,而二级列表需要一个map。
5)top代码一级列表当前选中的项。map.get(top.deptno)代表根据部门编号找到map里面对应的员工集合。6)一个jsp页面上出现了两个<s:doubleselect标签也存在显示不完全的现象。

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 {
vector = new Vector();
DeptInfo d1 = new DeptInfo("11", "销售部");
DeptInfo d2 = new DeptInfo("22", "网络部");
DeptInfo d3 = new DeptInfo("33", "IT中心");
vector.add(d1);
vector.add(d2);
vector.add(d3);
Vector vector1 = new Vector();
UserInfo u1 = new UserInfo("1", "张三");
UserInfo u2 = new UserInfo("2", "李四");
UserInfo u3 = new UserInfo("3", "王五");
vector1.add(u1);
vector1.add(u2);
vector1.add(u3);
Vector vector2 = new Vector();
UserInfo u10 = new UserInfo("10", "小张");
UserInfo u20 = new UserInfo("20", "小李");
UserInfo u30 = new UserInfo("30", "小王");
vector2.add(u10);
vector2.add(u20);
vector2.add(u30);
Vector vector3 = new Vector();
UserInfo u100 = new UserInfo("100", "张张");
UserInfo u200 = new UserInfo("200", "丽丽");
UserInfo u300 = new UserInfo("300", "旺旺");
vector3.add(u100);
vector3.add(u200);
vector3.add(u300);
map = new HashMap();
map.put(d1.getDeptno(), vector1);
map.put(d2.getDeptno(), vector2);
map.put(d3.getDeptno(), vector3);
return "success";
}
public Vector getVector() {
return vector;
}
public void setVector(Vector vector) {
this.vector = vector;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
}


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;
}
}


public class DeptInfo {
private String deptno;
private String deptname;
public DeptInfo() {
}
public DeptInfo(String deptno, String deptname) {
this.deptno = deptno;
this.deptname = deptname;
}
public String getDeptno() {
return deptno;
}
public void setDeptno(String deptno) {
this.deptno = deptno;
}
public String getDeptname() {
return deptname;
}
public void setDeptname(String deptname) {
this.deptname = deptname;
}
}


jsp:
<body>
<s:form>
<s:doubleselect
id="selectid"
name="selectname"
list="vector"
listKey="deptno"
listValue="deptname"
doubleId="doubleselectid"
doubleName="doubleselectname"
doubleList="map.get(top.deptno)"
doubleListKey="userno"
doubleListValue="username"
/>
</s:form>
</body>


html源码:
<body>
<form id="ui" name="ui" onsubmit="return true;" action="/ui/ui.action;jsessionid=F3DF27784FF8329CDA10ADAD186B6345" method="post"><table class="wwFormTable">
<tr>
<td class="tdLabel"></td>
<td
>
<select name="selectname" id="selectid" onchange="selectidRedirect(this.options.selectedIndex)">
<option value="11">销售部</option>
<option value="22">网络部</option>
<option value="33">IT中心</option>
</select>
<br />
<select name="doubleselectname" id="doubleselectid">
</select>
<mce:script type="text/javascript"><!--
var selectidGroup = new Array(3 + 0);
for (i = 0; i < (3 + 0); i++)
selectidGroup[i] = new Array();
selectidGroup[0][0] = new Option("张三", "1");
selectidGroup[0][1] = new Option("李四", "2");
selectidGroup[0][2] = new Option("王五", "3");
selectidGroup[1][0] = new Option("小张", "10");
selectidGroup[1][1] = new Option("小李", "20");
selectidGroup[1][2] = new Option("小王", "30");
selectidGroup[2][0] = new Option("张张", "100");
selectidGroup[2][1] = new Option("丽丽", "200");
selectidGroup[2][2] = new Option("旺旺", "300");
var selectidTemp = document.ui.doubleselectid;
selectidRedirect(0);
function selectidRedirect(x) {
var;
for (m = selectidTemp.options.length - 1; m >= 0; m--) {
selectidTemp.options[m] = null;
}
for (i = 0; i < selectidGroup[x].length; i++) {
selectidTemp.options[i] = new Option(selectidGroup[x][i].text, selectidGroup[x][i].value);
}
if ((selectidTemp.options.length > 0) && (! selected)) {
selectidTemp.options[0].selected = true;
}
}
// --></mce:script>    </td>
</tr>
</table></form>
</body>


<s:set name="pc" value="#{'广东省':{'广州市','深圳市','珠海市'},'江苏省':{'南京市','苏州市','扬州市'},'河南省':{'郑州市','洛阳市','开封市','南阳市'}}" />
<s:form>
<s:doubleselect
id="selectid"
name="selectname"
list="#pc.keySet()"
doubleName="doubleselectname"
doubleList="#pc[top]"
doubleId="doubleselectid"
doubleName="doubleselectname"
/>
</s:form>

效果



第二种做法:

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