package cn.itcast.bean;
public class Role {
private Integer roleId;
private String roleName;
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
}
package cn.itcast.action;
import java.util.ArrayList;
import java.util.List;
import cn.itcast.bean.Role;
import com.opensymphony.xwork2.ActionContext;
public class OptionTransferSelectAction {
private String[] leftRoles;
private String[] rightRoles;
public String[] getLeftRoles() {
return leftRoles;
}
public void setLeftRoles(String[] leftRoles) {
this.leftRoles = leftRoles;
}
public String[] getRightRoles() {
return rightRoles;
}
public void setRightRoles(String[] rightRoles) {
this.rightRoles = rightRoles;
}
public String execute(){
ArrayList<Role> leftList=new ArrayList<Role> ();
Role leftRoles1=new Role();
leftRoles1.setRoleId(1);
leftRoles1.setRoleName("角色1");
Role leftRoles2=new Role();
leftRoles2.setRoleId(2);
leftRoles2.setRoleName("角色2");
Role leftRoles3=new Role();
leftRoles3.setRoleId(3);
leftRoles3.setRoleName("角色3");
Role leftRoles4=new Role();
leftRoles4.setRoleId(4);
leftRoles4.setRoleName("角色4");
leftList.add(leftRoles1);
leftList.add(leftRoles2);
leftList.add(leftRoles3);
leftList.add(leftRoles4);
ArrayList<Role> rightList=new ArrayList<Role>();
Role rightRoles1=new Role();
rightRoles1.setRoleId(1);
rightRoles1.setRoleName("角色5");
Role rightRoles2=new Role();
rightRoles2.setRoleId(2);
rightRoles2.setRoleName("角色6");
Role rightRoles3=new Role();
rightRoles3.setRoleId(3);
rightRoles3.setRoleName("角色7");
Role rightRoles4=new Role();
rightRoles4.setRoleId(4);
rightRoles4.setRoleName("角色8");
rightList.add(rightRoles1);
rightList.add(rightRoles2);
rightList.add(rightRoles3);
rightList.add(rightRoles4);
ActionContext.getContext().put("leftlist",leftList);
ActionContext.getContext().put("rightlist",rightList);
return "success";
}
public String optionTransferSelectPost(){
List<String> right = new ArrayList<String>();
for(int i=0;i<rightRoles.length;i++){
right.add(rightRoles[i]);
}
List<String> left = new ArrayList<String>();
for(int i=0;i<leftRoles.length;i++){
left.add(leftRoles[i]);
}
ActionContext.getContext().put("left",left);
ActionContext.getContext().put("right",right);
return "option";
}
}
optiontransferselect.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'personlist.jsp' starting page</title>
<script type="text/javascript">
function selectRight(){
var right = document.forms[0].rightRoles;
for(var i=0;i<right.length;i++)
right[i].selected=true;
var left = document.forms[0].leftRoles;
for(var i=0;i<left.length;i++)
left[i].selected=true;
}
</script>
</head>
<body>
<s:form action="select_optionTransferSelectPost">
<s:optiontransferselect
label="整个optiontransferselect的说明"
name="leftRoles"
leftTitle="用户已授权角色"
list="#request.leftlist"
listKey="roleId"//提交的值
listValue="roleName" //显示的值
multiple="true"
headerKey="headerKey"
headerValue="--- 请选择用户角色 ---"
emptyOption="false"
allowUpDownOnLeft="true"
cssStyle="width:200px;height:300px;"
rightTitle="用户未授权的角色"
doubleList="#request.rightlist"
doubleListKey="roleId"
doubleListValue="roleName"
doubleName="rightRoles"
doubleHeaderKey="doubleHeaderKey"
doubleHeaderValue="--- 请选择用户角色 ---"
doubleEmptyOption="false"
doubleMultiple="true"
allowUpDownOnRight="true"
doubleCssStyle="width:200px;height:300px;"
addToLeftLabel="导入左侧"
addToRightLabel="导入右侧"
addAllToLeftLabel="全部导入左侧"
addAllToRightLabel="全部导入右侧"
leftDownLabel="向下移动"
rightDownLabel="向下移动"
leftUpLabel="向上移动"
rightUpLabel="向上移动"
selectAllLabel="全部选中"
/>
<s:submit value="提交" οnclick="selectRight()"></s:submit>
</s:form>
</body>
</html>
optionResult.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'personlist.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<s:debug></s:debug>
<h3>已选角色</h3><br>
<s:iterator value="#request.right" var="r">
<s:property value="#r"/><br>
</s:iterator>
<h3>没有被选角色</h3><br>
<s:iterator value="#request.left" var="l">
<s:property value="#l"/><br>
</s:iterator>
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 是否允许OGNL表达式中调用静态方法,重要的 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<package name="itcast" namespace="/itcast" extends="struts-default">
<action name="list" class="cn.itcast.action.PersonListAction">
<result name="list">/WEB-INF/page/personlist.jsp</result>
</action>
<action name="select_*" class="cn.itcast.action.OptionTransferSelectAction" method="{1}">
<result name="success">/WEB-INF/page/optiontransferselect.jsp</result>
<result name="option">/WEB-INF/page/optionResult.jsp</result>
</action>
</package>
</struts>