`

struts2的 action中得到<s:optiontransferselect/>标签中的内容

阅读更多

最近用到struts2 <s:optiontransferselect/>标签,要求在action中获取<s:optiontransferselect/>标签中的内容

出现这个问题后,发现确实很难实现,所以就Google了下,但获取答案却不理想

但研究struts2的demo后,发现他们可以正常获取的,所以就研究了下,发现问题其实很简单:

在此,借用下Google时,搜索到的一个问题

<s:form action="TestTagLib">
        <s:optiontransferselect
    label="optiontransferselect Test"
    labelposition="top"
    list="{'thomas1','ada','lothar'}"
    name="leftList"
    addToLeftLabel="向左移动"
    addToRightLabel="向右移动"
    addAllToLeftLabel="left"
    addAllToRightLabel="right"
    doubleName="rightList"
  doubleList="{'Expert One-on-One J2EE Design and Development', 'JavaScript: TDefinGuide'}" 
          />
      <s:submit  value="login"/> 
  </s:form> 
<s:form action="TestTagLib"> 
          <s:optiontransferselect  
 	    label="optiontransferselect Test" 
 	    labelposition="top" 
 	    list="{'thomas1','ada','lothar'}" 
 	    name="leftList" 
 	    addToLeftLabel="向左移动" 
 	    addToRightLabel="向右移动" 
 	    addAllToLeftLabel="left" 
 	    addAllToRightLabel="right" 
 	    doubleName="rightList" 
 	   doubleList="{'Expert One-on-One J2EE Design and Development', 'JavaScript: TDefinGuide'}"   
           /> 
        <s:submit  value="login"/>   
     </s:form> 
  
 然后提交到TestTagLibAction中,在action中设置了setter(),getter()方法,关键代码如下: 
  
 private List leftList; 
 private List rightList; 
  
 	public List getLeftList() { 
 		return leftList; 
 	} 
  
 	public void setLeftList(List leftList) { 
 		this.leftList = leftList; 
 	} 
  
 	public List getRightList() { 
 		return rightList; 
 	} 
  
 	public void setRightList(List rightList) { 
 		this.rightList = rightList; 
 	} 
  
 为什么在execute()方法中得不到 rightList的值? 其中rightList对应前面jsp页面中 <s:optiontransferselect/>的doublename="rightList"标签,代码如下: 
  
                  List list1=getRightList(); 
 		for(int i=0;i <list1.size();i++){ 
 			System.out.println(list1.get(i).toString()); 
 		} 

 借用下此问题的回答:

后台action里面添加属性(setXXX和getXXX方法):
private String[] leftList;
private String[] rightList;

在前台页面上,当提交表单时,onclick事件调用下面的js:
<script type="text/javascript">
  function myself(){
  var right=document.forms[0].rightList;
  for(i=1; i <right.length; i++)
    right[i].selected = true;
  }
</script>
提交后,就能在后台得到rightList里面的值了。
如果没有这段Js代码,后台是得不到值的,这是Struts2 <s:optiontransferselect/>本身的bug. 

 呵呵,首先感谢这位兄弟的回答,这样做应该是可以的(ps:我没有测试)

但这不是struts2的bug

问题出在html中的代码上

用firebug监控表单的提交的时候,会获取到一个dojo错误,其实问题很简单:

缺失

<s:head/>
 

 这个标签

因在struts2中集成了dojo,所以不导入dojo肯定会出现问题了

呵呵,就这么简单.

非常感谢上面引述的那位兄弟的回答

 

以上问题的来源地:http://topic.csdn.net/u/20080127/15/4539cf2e-7309-4de8-9289-fa0fe02496b5.html

分享到:
评论
1 楼 lxtkong-029 2010-01-27  
郁闷了半天,在你这里得到解决了,太谢谢了!

相关推荐

    struts2 标签库 帮助文档

    7. &lt;s:autocompleter&gt;&lt;/s:autocompleter&gt;-----自动完成&lt;s:combobox&gt;标签的内容,这个是ajax B: 1. &lt;s:bean name=""&gt;&lt;/s:bean&gt;-----类似于struts1.x中的,JavaBean的值 C: 1. &lt;s:checkbox&gt;&lt;/s:checkbox&gt;---...

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

    - `&lt;s:form&gt;` 标签是创建表单的基础,其常用属性包括`action`、`method`、`enctype`等。 - 示例: ```xml &lt;s:form action="exampleSubmit" method="post" enctype="multipart/form-data"&gt; &lt;s:submit/&gt; &lt;s:...

    Struts2标签列表及说明

    * &lt;s:autocompleter&gt;:自动完成 &lt;s:combobox&gt; 标签的内容,这个是 AJAX 实现的 B: * &lt;s:bean&gt;:类似于 Struts1.x 中的 JavaBean 的值 C: * &lt;s:checkbox&gt;:复选框 * &lt;s:checkboxlist&gt;:多选框 * &lt;s:combobox&gt;:...

    struts2-s标签

    而在 Struts2 中,所有的标签都被统一管理,并通过在 JSP 文件头部声明 `&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;` 来启用 Struts2 的标签库。这种方式简化了开发过程中的配置工作,使得开发者可以更加专注于...

    struts2标签大全

    在JSP中,我们通常使用`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`来引入Struts2的标签库。下面将详细介绍一些重要的Struts2标签及其功能。 **A. 超链接和Action标签** - `&lt;s:a href=""&gt;&lt;/s:a&gt;`:创建一个...

    Struts标签集合简介

    `&lt;s:token&gt;` 用于防止重复提交,`&lt;s:tree&gt;` 创建树形结构,`&lt;s:treenode&gt;` 定义树节点,`&lt;s:updownselect&gt;` 创建可上下选择的多选框,`&lt;s:url&gt;` 生成URL,通常与Action关联。 以上就是Struts标签的基本介绍,它们极...

    struts2标签库

    2. `&lt;s:action name=""&gt;&lt;/s:action&gt;`:执行一个视图中的Action,通常用于导航和请求转发。 3. `&lt;s:actionerror/&gt;`:如果Action中的全局错误有值,则显示这些错误信息。 4. `&lt;s:actionmessage/&gt;`:如果Action中的全局...

    struts2标签整理

    `&lt;s:action&gt;` - 动作标签 该标签用于执行一个Action,并跳转到指定的结果视图。 ```jsp &lt;s:action name="myAction"&gt; &lt;!-- 可以包含其他表单元素 --&gt; &lt;/s:action&gt; ``` ##### 3. `&lt;s:actionerror&gt;` - 显示动作错误...

    struts2标签解释

    `&lt;s:action&gt;`标签则是用来执行视图中的一个Action,通常用于页面间的跳转和业务逻辑的触发。 B. `&lt;s:bean&gt;`: 此标签类似于Struts1中的JavaBean引用,用于在JSP页面中引用JavaBean的属性。 C. `&lt;s:checkbox&gt;` 和 `...

    struts2常用标签

    本文将详细介绍Struts2中常用的标签及其用法,帮助开发者更好地理解和运用这些标签。 #### 二、标签详解 ##### 1. `&lt;s:a href=""&gt;` —— 超链接 - **功能**:类似于HTML中的`&lt;a&gt;`标签,用于创建超链接。 - **示例*...

    struts2.0 标签清单

    `&lt;s:form&gt;` 标签用于创建表单,可以指定Action、Method等属性,是Struts2中最常用的标签之一。 ```xml &lt;s:form action="saveData"&gt; &lt;!-- 表单内容 --&gt; &lt;/s:form&gt; ``` ### 17. `&lt;s:generator&gt;` 标签 `&lt;s:...

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

    2. `&lt;s:action name=""&gt;` - 执行视图中的一个Action,可以直接在页面上调用Action方法。 3. `&lt;s:actionerror/&gt;` - 如果Action中存在错误信息,会将其显示出来。 4. `&lt;s:actionmessage/&gt;` - 显示Action的提示信息,...

    struts2_标签使用方法.doc

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

    下面就介绍下Struts2每个标签的用法(有错请指正):

    - **用途**:相当于 Struts1.x 中的 `&lt;bean&gt;` 标签,用于创建 JavaBean 实例。 - **示例**: ```xml &lt;s:bean name="myBean" id="beanInstance" class="com.example.MyBean"/&gt; ``` ##### 8. `&lt;s:checkbox&gt;` 标签 ...

    struts2的s标签

    ### Struts2中的S标签详解 #### 一、概述 Struts2框架是Apache软件基金会下的一个开源项目,它提供了一种基于MVC(Model-View-Controller)设计模式的Web应用开发框架。Struts2提供了丰富的标签库,其中“S标签”...

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

    在Struts2中,`s:optiontransferselect`是一个特殊的标签,用于创建具有双向选择功能的下拉列表,即“左列表”和“右列表”,用户可以在这两个列表之间转移选项,常用于多选场景。 **1. `s:optiontransferselect` ...

    struts_tag

    Struts2标签库是Struts2框架的一部分,它提供了一系列JSP标签,使得开发者能更方便地在页面中处理Action的属性和业务逻辑。这些标签简化了页面编码,提高了代码的可读性和可维护性。以下是对每个标签的详细解释: A...

    Struts 2.0 标签库简介.doc

    - `&lt;s:push&gt;`: 将值压入栈中,便于`&lt;s:property&gt;`标签访问。 - `&lt;s:radio list=""&gt;`: 创建单选按钮,列表来源于一个集合。 - `&lt;s:reset&gt;`: 创建一个重置按钮,用于清空表单数据。 - `&lt;s:select list=""&gt;`: 创建一个...

    Struts2常用标签

    2. **&lt;s:action&gt; 执行Action** - **用途**:执行视图中的一个Action。 - **示例**: ```xml &lt;s:action name="exampleAction" /&gt; ``` 3. **&lt;s:actionerror&gt; 显示Action错误** - **用途**:如果Action的`errors...

Global site tag (gtag.js) - Google Analytics