`

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

    struts2 optiontransferselect标签使用中的问题

    在Struts2中,OptionTransferSelect标签通常与&lt;s:select&gt;标签配合使用,后者创建一个下拉列表,而前者则提供了双向选择的功能。以下是一些关于这个标签的重要知识点: 1. **标签语法**: OptionTransferSelect标签...

    struts2的s标签

    要在JSP页面中使用Struts2的S标签,首先需要在页面顶部添加如下声明: ```jsp &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; ``` 这行代码的作用是将Struts2提供的标签库导入到当前JSP页面中,并指定前缀为“s”。...

    struts2标签大全

    - `&lt;s:optiontransferselect&gt;`:创建左右选择框,用户可以在两个下拉列表之间转移选项。 **L. 参数传递和密码输入** - `&lt;s:param&gt;&lt;/s:param&gt;`:为其他标签提供参数。 - `&lt;s:password&gt;&lt;/s:password&gt;`:创建密码...

    struts2-s标签

    这些标签用于创建下拉列表和子集选择框,`&lt;s:select&gt;` 创建标准的下拉列表,而 `&lt;s:subset&gt;` 可以从集合中选择子集。 **示例:** ```xml &lt;s:select name="country" list="countries" headerKey="-1" headerValue=...

    struts2标签介绍

    在Struts2中,所有的标签都统一在`&lt;s&gt;`前缀下,通过引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`就可以在页面上使用这些标签。 **A组标签:** 1. `&lt;s:a&gt;` - 用于创建超链接,与HTML的`&lt;a&gt;`标签类似,可以...

    Struts标签集合简介

    `&lt;s:optgroup&gt;` 创建分组的选项,`&lt;s:optiontransferselect&gt;` 实现左右选择框,允许用户在两个下拉列表之间移动选项。 P. `&lt;s:param&gt;, &lt;s:password&gt;, &lt;s:property&gt;`: `&lt;s:param&gt;` 传递参数给其他标签,`&lt;s:password...

    struts2标签解释

    `&lt;s:file&gt;`标签用于文件上传功能,与Struts2的FileUpload拦截器配合使用。 `&lt;s:form&gt;`标签创建表单,它会将表单数据提交到指定的Action。 G. `&lt;s:generator&gt;`,`&lt;s:iterator&gt;`: `&lt;s:generator&gt;`常与`s:iterator`...

    struts2标签详细讲解

    2. `&lt;s:optiontransferselect&gt;`:左右选择框,允许用户在两个下拉框之间转移选项。 L. 标签辅助: 1. `&lt;s:label&gt;`:创建只读标签,用于显示文本。 2. `&lt;s:merge&gt;`:合并遍历集合产生的值。 M. 参数和值: 1. `&lt;s:...

    struts2标签整理

    `&lt;s:combobox&gt;` - 下拉列表标签 用于创建一个下拉列表。 ```jsp &lt;s:combobox name="combo" list="options" headerKey="" headerValue=""/&gt; ``` ##### 11. `&lt;s:component&gt;` - 组件标签 用于嵌入一个组件。 ```jsp ...

    Struts2标签应用.

    2. `&lt;s:optiontransferselect&gt;`:创建左右选择框,用于双向选择列表项。 P部分: 1. `&lt;s:param&gt;`:为其他标签传递参数。 2. `&lt;s:password&gt;`:创建密码输入框,输入内容不可见。 3. `&lt;s:property&gt;`:显示或设置值栈...

    struts2.0 标签清单

    `&lt;s:optiontransferselect&gt;` 标签用于创建一个可以选择并转移项的下拉列表。 ### 28. `&lt;s:param&gt;` 标签 `&lt;s:param&gt;` 标签用于向URL或其他标签传递参数。 ### 29. `&lt;s:password&gt;` 标签 `&lt;s:password&gt;` 标签用于...

    struts2标签.doc

    `&lt;s:optiontransferselect&gt;`:创建一个具有左右选择框的组件,允许用户在两个列表间移动选项。 P. `&lt;s:param&gt;`:为其他标签提供参数,可以传递额外的数据。 Q. `&lt;s:password&gt;`:创建一个密码输入框,保证输入内容...

    struts2常用标签

    以上只是Struts2标签库中的一部分,实际上还有很多其他的标签,如`&lt;s:textfield&gt;`(文本输入框)、`&lt;s:textarea&gt;`(多行文本输入框)等,它们共同构成了Struts2强大的视图层支持,简化了Web开发中的页面构建工作。

    Struts2标签详解及具体实例解析

    2. `&lt;s:optiontransferselect&gt;` - 左右选择框,允许用户在两个列表之间移动选项。 P部分: 1. `&lt;s:param&gt;` - 为其他标签传递参数。 2. `&lt;s:password&gt;&lt;/s:password&gt;` - 密码输入框,输入内容不可见。 3. `&lt;s:...

    struts2_标签使用方法.doc

    在Struts2中,不再像Struts1.x那样将标签库分为html、bean、logic和tiles等类别,而是统一使用一个`&lt;s&gt;`前缀的标签库,只需在JSP页面头部引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`即可使用所有标签。...

Global site tag (gtag.js) - Google Analytics