`

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>

 

测试结果:



 

 

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

 

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


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

  • 大小: 31.2 KB
分享到:
评论

相关推荐

    struts2 optiontransferselect标签的用法

    struts2 optiontransferselect标签,其中包含一个jsp页面,可以将此jsp页面放入您的项目中,即可看到效果!

    struts2 标签库 帮助文档

    optiontransferselect标签:创建两个选项以及转移下拉列表项,该标签生成两个下拉列表框,同时生成相应的按钮,这些按钮可以控制选项在两个下拉列表之间移动、排序。 radio标签:单选框。 optgroup标签:生成一个...

    Struts2+API+标签全解+网页说明

    optiontransferselect标签:创建两个选项以及转移下拉列表项,该标签生成两个下拉列表框,同时生成相应的按钮,这些按钮可以控制选项在两个下拉列表之间移动、排序。 radio标签:单选框。 optgroup标签:生成一个...

    struts2 optiontransferselect标签使用中的问题

    NULL 博文链接:https://hanxin0311.iteye.com/blog/443327

    struts2标签大全详解

    struts2标签大全详解,optiontransferselect标签属性 ,Struts2常用的Ajax标签

    Struts2 UI标签代码示例

    Struts2 UI标签示例(包含tabbedPanel标签,autocompleter标签,tree和treenode,optiontransferselect标签等)

    JSP_struts2标签大全

    JSP_struts2标签大全 1.a 3 2.action 3 3. actionerror 4 4. actionmessage 5 5. append 5 6. bean 7 7.checkbox 7 8.checkboxlist 8 9. combobox 9 10. conponent 9 11. date 11 12. datetimepicker 12 13. debug ...

    Struts2标签 UI标志又可以分为表单UI和非表单UI两部分

    不过,Struts 2.0加了几个我们经常在项目中用到的控件如:datepicker、doubleselect、timepicker、optiontransferselect等。因为这些标志很多都经常用到,而且参数也很多,要在一篇文章详细说明并非易事。 下面主要...

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    用struts2 实现注册

    用struts2实现用户的注册,涉及到的知识点包括用户名和密码的校验(正则表达式验证);国际化;radio,checkboxlist,optiontransferselect等标签的使用,文件的上传等。

    struts2相关资料

    这里包含了struts2标签的介绍,介绍了Struts2中OGNLvalueStack和stackContext,radio List的预选问题,文件的上传与下载,防止表单重复提交optiontransferselect字符串拼接,struts2_Path_路径问题

    低清版 大型门户网站是这样炼成的.pdf

    11.4.1 展示层jsp 2+struts 2标签库实现 711 11.4.2 控制层struts 2实现 720 11.4.3 持久层hibernate 3实现 728 11.4.4 spring 2接管业务逻辑层 730 11.5 小结 733 第12章 站务必备—系统用户管理与流量统计 ...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    5.1 Struts标签的使用方法 59 5.2 表单标签的共同属性 60 5.3 form标签 62 5.4 textfield、password、hidden标签 63 5.5 submit标签 65 5.6 reset标签 65 5.7 label标签 66 5.8 head标签 66 5.9 textarea标签 66 ...

    JQuery实现select互换数据和上下移动

    功能类似struts2 optiontransferselect 标签的jquery组件 非常好用的一个JQuery组件

Global site tag (gtag.js) - Google Analytics