读书人

struts2 标签 s:optiontransferselect

发布时间: 2012-10-10 13:58:11 作者: rapoo

struts2 标签 s:optiontransferselect左右下拉列表的使用。

?

最近做项目,需要用到struts2中的标签,

自己便研究了一些.研究的成功..则贴出来与大家分享:

?

第一步搭建struts2框架。 然后建立Action.

?

这里取名叫做StrutsTagAction。

下面是StrutsTagAction的具体代码:

package pack.java.file.upload.action;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import com.opensymphony.xwork2.ActionSupport;public class StrutsTagAction extends ActionSupport{private static final long serialVersionUID = 3862594026022793012L;private Map<String, Object> userGroupMap;private Map<String, Object> alreadExistsUserGroupMap;private String javaBook;private String[] leftSelectValue;private String[] rightSelectValue;                //getter和settter方式省略;/** * 显示用户组信息; * @return */public String displayUserGroupList(){Map<String, Object> map = new HashMap<String, Object>();Map<String, Object> userGroup = new HashMap<String, Object>();userGroup.put("100", "开发员组");userGroup.put("200", "代码测试组");userGroup.put("300", "管理员组");userGroup.put("400", "需求分析组");userGroup.put("500", "架构设计组");Map<String, Object> alreadyExistxUserGroup = new HashMap<String, Object>();alreadyExistxUserGroup.put("300", "管理员组");alreadyExistxUserGroup.put("400", "需求分析组");alreadyExistxUserGroup.put("500", "架构设计组");this.alreadExistsUserGroupMap = alreadyExistxUserGroup;//判定所有权限中,是否存在相同的;如果存在,则删除;for(Iterator<String> iterator1 = userGroup.keySet().iterator();iterator1.hasNext();){String userGroupKey = iterator1.next();for(Iterator<String> iterator2 = alreadyExistxUserGroup.keySet().iterator();iterator2.hasNext();){String alreadyExistsKey = iterator2.next();if(userGroupKey.equals(alreadyExistsKey)){map.put(userGroupKey,userGroup.get(userGroupKey));}}}//循环已有的map对象:for(Iterator<String> iterator1 = map.keySet().iterator();iterator1.hasNext();){//移除已经存在的对象;userGroup.remove(iterator1.next());}this.userGroupMap = userGroup;return "userGroupList";}/** * 获取选择复选框的值; * @return */public String getDoubleSelectValue(){//获取选择的值;System.out.println("左侧下拉框的值:");if(leftSelectValue!=null && leftSelectValue.length>0){for(int i = 0;i<this.leftSelectValue.length;i++){System.out.print(this.leftSelectValue[i]+",");}}System.out.println("");System.out.println("右侧下拉框的值:");if(rightSelectValue!=null && rightSelectValue.length>0){for(int i = 0;i<this.rightSelectValue.length;i++){System.out.print(this.rightSelectValue[i]+",");}}System.out.println("");//重新加载显示;displayUserGroupList();return "userGroupList";}}

?然后,建立一个jsp页面.

具体代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"   pageEncoding="UTF-8"%><%@taglib prefix="s" uri="/struts-tags"%>    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><s:head theme="ajax"/><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript">//在js中获取值;function getDoubleSelectListValue(){//获取左边的下拉框的值;var leftNode = document.getElementById("left");for(var i = 0;i<leftNode.length;i=i+1){alert("左侧下拉框的值:->>"+leftNode[i].value+","+leftNode[i].text);//id }//获取右边的下拉框的值;var rightNode = document.getElementById("right");for(var i = 0;i<rightNode.length;i=i+1){alert("右侧下拉框的值:->>"+rightNode[i].value+","+rightNode[i].text);}}</script></head><body>   <s:form method="post" name="myform" action="strutsTagAction!getDoubleSelectValue.action"> <!-- Struts2中的左右选择框; list       - 指左侧下拉框的集合,可以是List集合,或者是Map集合 doubleList - 指右侧下拉框的集合, leftTitle  - 指左侧标题 rightTitle - 指右侧标题  listKey    - 指左侧的list中的key, listValue  - 指左侧的list中的value,  --> <s:optiontransferselect   id="left"     name="leftSelectValue"     list="#request.userGroupMap"     listKey="key"     listValue="value"          doubleId="right"     doubleName="rightSelectValue"     rightTitle="已选择"     leftTitle="未选择"     doubleList="#request.alreadExistsUserGroupMap"     doubleListKey="key"     doubleListValue="value"     /><br/><s:submit value="提交已经选择的值" theme="simple"></s:submit><input type="button" value="在Javascript中获取值" onclick="getDoubleSelectListValue()"/><br/><br/><br/><br/><!-- 日期选择框 --><s:datetimepicker name="order.data" label="购买日期" toggleType="explode" value="today"/><!-- 时间选择框; --><s:datetimepicker name="start" label="选择出发时间" type="time" value="12:00"/></s:form></body></html>

?

测试结果:


struts2 标签 s:optiontransferselect左右上拉列表的使用
?

?

当点击提交按钮到后台输出的值:

?

左侧下拉框的值:
200,100,


右侧下拉框的值:
500,400,300,

读书人网 >编程

热点推荐