首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

大家帮小弟我看看这是咋回事?

2012-01-19 
大家帮我看看这是怎么回事??在做Struts2 OptionTransferSelect标签使用练习时,想实现一个“双向选择器”,并

大家帮我看看这是怎么回事??
在做Struts2 OptionTransferSelect标签使用练习时,想实现一个“双向选择器”,并找到了一段这样的代码:
1. Action层
TransferSelect.java 

package com.mobilesoft.esales.webapp.action; 

import java.util.ArrayList; 

import java.util.Iterator; 

import java.util.List; 

import java.util.Map; 

import java.util.Set; 

import org.apache.log4j.Logger; 

public class TransferSelect extends BaseAction { 

private static final Logger logger = Logger.getLogger(DoubleListAction.class); 

  String[] leftRoles; 

  String[] rightRoles; 

public String execute(){  

return SUCCESS; 

  } 

public String transferSelect(){ 

  ArrayList<Roles> leftList=new ArrayList<Roles> ();  

  Roles leftRoles1=new Roles(); 

  leftRoles1.setRoleId(1); 

  leftRoles1.setRoleName("角色1"); 

  Roles leftRoles2=new Roles(); 

  leftRoles2.setRoleId(2); 

  leftRoles2.setRoleName("角色2"); 

  Roles leftRoles3=new Roles(); 

  leftRoles3.setRoleId(3); 

  leftRoles3.setRoleName("角色3"); 

  Roles leftRoles4=new Roles(); 

  leftRoles4.setRoleId(4); 

  leftRoles4.setRoleName("角色4"); 

  leftList.add(leftRoles1); 

  leftList.add(leftRoles2); 

  leftList.add(leftRoles3); 

  leftList.add(leftRoles4); 

  ArrayList<Roles> rightList=new ArrayList();  

  Roles rightRoles1=new Roles(); 

  rightRoles1.setRoleId(1); 

  rightRoles1.setRoleName("角色5"); 

  Roles rightRoles2=new Roles(); 

  rightRoles2.setRoleId(2); 

  rightRoles2.setRoleName("角色6"); 

  Roles rightRoles3=new Roles(); 

  rightRoles3.setRoleId(3); 

  rightRoles3.setRoleName("角色7"); 

  Roles rightRoles4=new Roles(); 

  rightRoles4.setRoleId(4); 

  rightRoles4.setRoleName("角色8"); 

  rightList.add(rightRoles1); 

  rightList.add(rightRoles2); 

  rightList.add(rightRoles3); 

  rightList.add(rightRoles4);  

  getRequest().setAttribute("rightList", rightList); 

  getRequest().setAttribute("leftList", leftList); 

return SUCCESS; 

  } 

public String transferSelectPost(){ 

  Map map=getRequest().getParameterMap(); 

  Set set=map.entrySet(); 

  Iterator iterator=set.iterator(); 

while(iterator.hasNext()){ 

  Map.Entry mapEntry=(Map.Entry)iterator.next(); 

if(mapEntry.getValue() instanceof String[]){ 

  String[] selectValues=(String[])mapEntry.getValue(); 

for(int i=0;i<selectValues.length;i++){ 

logger.fatal("For map test,The key is: "+mapEntry.getKey()+",value is :"+selectValues[i]);  

  } 

  } 


  } 

for(int i=0;i<leftRoles.length;i++){ 

logger.fatal("For Array test,The leftRoles roleName is: "+leftRoles[i]);  

  } 

for(int i=0;i<rightRoles.length;i++){ 

logger.fatal("For Array test,The rightRoles roleName is: "+rightRoles[i]);  

  }  

  getRequest().setAttribute("map", map); 

return SUCCESS; 

  } 

public void setLeftRoles(String[] leftRoles) { 

this.leftRoles = leftRoles; 

  } 

public void setRightRoles(String[] rightRoles) { 

this.rightRoles = rightRoles; 

  }  



Roles.java 

package com.mobilesoft.esales.webapp.action; 

public class Roles {
  private Integer roleId;
  private String roleName;
  public Roles(){
  }
  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;
  }


2. Web层
transferselect.jsp 

<%@ taglib prefix="s" uri="/struts-tags" %> 

<%@ page language="java" errorPage="/error.jsp" pageEncoding="GBK" contentType="text/html;charset=GBK" %> 

<html> 

<head> 

<title>Struts 2 Cool Tags - OptionTransferSelect</title> 

<s:head theme="ajax"/> 

</head> 

<body> 

<h2>用户角色授权</h2> 

<s:form action="transferSelectPost" name="form1" > 

<s:optiontransferselect 

label="测试-Action数据" 

name="leftRoles" 

  leftTitle="用户已授权角色" 

  list="#request.leftList" 

  listKey="roleId" 

  listValue="roleName" 

multiple="true" 

  headerKey="headerKey" 

  headerValue="--- 请选择用户角色 ---" 

  emptyOption="false" 

  allowUpDownOnLeft="false" 

  cssStyle="width:200px;height:300px;" 

  rightTitle="用户未授权的角色" 

  doubleList="#request.rightList" 

  doubleListKey="roleId" 

  doubleListValue="roleName" 

  doubleName="rightRoles" 

  doubleHeaderKey="doubleHeaderKey" 

  doubleHeaderValue="--- 请选择用户角色 ---" 

  doubleEmptyOption="false" 

  doubleMultiple="true" 

  allowUpDownOnRight="false" 

  doubleCssStyle="width:200px;height:300px;" 

/> 

<s:submit align="left"/> 

</s:form> 

</body> 

</html> 



transferselectpost.jsp 


<%@ taglib prefix="s" uri="/struts-tags" %> 

<%@ page language="java" errorPage="/error.jsp" pageEncoding="GBK" contentType="text/html;charset=GBK" %> 

<html> 

<head> 

<title>Struts 2 Cool Tags - OptionTransferSelect</title> 

<s:head /> 

</head> 

<body> 

<h2>选择结果</h2> 

<s:form action="transferSelect" name="form1" > 

<s:iterator value="#request.map" status="mystatus"> 

<tr> 

<td> 

<s:property value="key" />:<s:property value="value" />,  

</td> 

</tr> 

</s:iterator> 

<s:submit align="left"/> 

</s:form> 

</body> 

</html> 

3. struts.xml
<action name="transferSelect" method="transferSelect" class="com.mobilesoft.esales.webapp.action.TransferSelect"> 

<result name="success">test/transferselect.jsp</result> 

</action> 

<action name="transferSelectPost" method="transferSelectPost" class="com.mobilesoft.esales.webapp.action.TransferSelect"> 

<result name="success">test/transferselectpost.jsp</result> 

</action> 

我试了一下,报如下错误:
1."BaseAction cannot be resolved to a type."
2."SUCCESS cannot be resolved."
3."getRequest() is undefined."
到底是怎么回事啊,是我缺少什么库吗?


[解决办法]

探讨
对,是没有这个类的问题,但是这个类应该怎么定义呢,很迷茫

[解决办法]
public class TransferSelect extends ActionSupport

热点排行