可以:
struts中:<form-bean name="dynaForm" type="org.apache.struts.action.DynaActionForm">
        <form-property name="friend" type="java.lang.String[]" size="3" />
     </form-bean>
在Action 中取出:
String [] friend=(String[])dynaForm.get("friend");

解决方案 »

  1.   

    哦,原来是这种写法,谢谢,那如果这个属性是和一个FORM里面的多选按钮关联,不知他能否跟普通的FORMBEAN一样会自动回显到对应的复选按钮里面呢
      

  2.   

    比如我在一个表单LOGIN中设置了3个<html:checkbox property="names"/>如果用普通的ACTIONFORM可以很容易封装这些数据并且如果我在ACTION里面用FORWARD返回原来表单所在的页面,可以看见表单显示的内容是我原来填入的内容
    但是如果我定义的是一个DynaAtionForm 里面有个names属性和它关联
    <form-bean   name="dynaForm"   type="org.apache.struts.action.DynaActionForm"> 
                    <form-property   name="names"   type="java.lang.String[]"   size="3"   /> 
              </form-bean>
    返回表单后就不能显示出来,不知道有什么好的方法解决?
      

  3.   

    没有碰到你说的情况啊 你是在哪个Action中做的跳转啊 我试了试1 使用List接受数据
      建立相应的ActionForm和配置
      如下:
      (1)ActionForm:(ListForm.java)      package com.zyl.struts.form;import java.awt.List;
    import java.util.ArrayList;import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;/**
     * MyEclipse Struts Creation date: 11-21-2007
     * 
     * XDoclet definition:
     * 
     * @struts.form name="listForm"
     */
    public class ListForm extends ActionForm { // --------------------------------------------------------- Instance
    // Variables
    private ArrayList addresses = new ArrayList(); private ArrayList friends = new ArrayList(); // --------------------------------------------------------- Methods /**
     * Method validate
     * 
     * @param mapping
     * @param request
     * @return ActionErrors
     */
    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) { // TODO Auto-generated method stub
    return null;
    } /**
     * Method reset
     * 
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub
    this.addresses.clear();
    this.friends.clear();
    } public ArrayList getAddresses() {
    return addresses;
    } public void setAddress(int index, String address) {
    if (this.addresses.size() > index) {
    this.addresses.set(index, address);
    } else {
    while (this.addresses.size() < index) {
    this.addresses.add(null);
    }
    this.addresses.add(index, address);
    }
    } public String getAddress(int index) {
    if (this.addresses.size() > index) {
    return (String) this.addresses.get(index);
    }
    return null;
    } public ArrayList getFriends() {
    return friends;
    } public void setFriend(int index, String friend) {
    if (this.friends.size() > index) {
    this.friends.set(index, friend);
    } else {
    while (this.friends.size() < index) {
    this.friends.add(null);
    }
    this.friends.add(index, friend);
    }
    } public String getFriend(int index) {
    if (this.friends.size() > index) {
    return (String) this.friends.get(index);
    }
    return null;
    }
    }
    (2)数据接受页面listFormInput.jsps
        <%@ page language="java" pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
    prefix="bean"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html"
    prefix="html"%>
    <html>
    <head>
    <title>ListForm</title>
    </head>
    <body>
    <h2>
    List Form Input
    </h2>
    <html:form action="/list">
    who are your 3 friends:<br>
    friend 1 : <html:text property="friend[0]" />
    friend 2 : <html:text property="friend[1]" />
    friend 3 : <html:text property="friend[2]" />

    who are your 3 address<br>
    addresses 1: <html:text property="address[0]" />
    addresses 2: <html:text property="address[1]" />
    addresses 3: <html:text property="address[2]" />
    <html:submit />
    <html:cancel />
    </html:form>
    </body>
    </html>
    (3)数据显示页面ListForm.jsp
     <%@ page language="java" pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
    prefix="bean"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html"
    prefix="html"%>
    <html>
    <head>
    <title>ListForm</title>
    </head>
    <body>
    <h2>
    List Form Output
    </h2>
    Friends
    <br>
    Friend 1:
    <bean:write name="listForm" property="friend[0]" />
    <br>
    Friend 2:
    <bean:write name="listForm" property="friend[1]" />
    <br>
    Friend 3:
    <bean:write name="listForm" property="friend[2]" />
    <hr>
    Addresses:
    <br>
    address 1: ${ listForm.addresses[0] }
    <br>
    address 2: ${ listForm.addresses[1] }
    <br>
    address 3: ${ listForm.addresses[2] }
    <br>

    </body>
    </html>
          其中的<html:link action="/forward.do">Forward</html:link>跳转到数据输入页 listFormInput.jsp
    (4)struts 中的配置Form配置:
    <form-bean name="listForm" type="com.zyl.struts.form.ListForm" />
    Action配置:
    <action attribute="listForm" input="/listFormInput.jsp"
    name="listForm" path="/list" scope="request"
    type="com.zyl.struts.action.ListAction">
    <forward name="display" path="/listForm.jsp" />
    </action>
    (5)ListAction.java 只是添加了 
       return mapping.findForward("display");
    (6)调试结果:
    当点击数据显示页面上的链接时,返回到数据输入页,原来的数据并没有保存,text都清空了
    如果你是改变了ListAction.java中的跳转页,return mapping.findForward(数据输入页面);
    还在
    2使用String[]接受数据:
    (1)struts中的配置
        Form:
       <form-bean name="testForm"
    type="org.apache.struts.action.DynaActionForm">
    <form-property name="check" type="java.lang.String[]"
    size="2" />  Action:
      <action attribute="testForm" input="/test.jsp" name="testForm"
    path="/test" scope="request"
    type="com.zyl.struts.action.TestAction">
    <forward name="suc" path="/suc.jsp" />
    </action>
     ForwardAction:
      <action forward="/test.jsp" path="/forward" />
    (2)数据输入页 test.jsp<%@ page language="java" pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
    prefix="bean"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html"
    prefix="html"%><html>
    <head>
    <title>JSP for DynaActionForm form</title>
    </head>
    <body>
    <html:form action="/test">
          check1 :<html:text property="check[0]"></html:text>
    <br />
     check2 :<html:text property="check[1]"></html:text> <br />
    <html:submit />
    <html:cancel />
    </html:form>
    <hr>
    </body>
    </html>
    (3)数据显示页:suc.jsp
    <%@ page language="java" pageEncoding="utf-8"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
    prefix="bean"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html"
    prefix="html"%><html>
    <head>
    <title>suc</title>
    </head> <body>
    check1:
    <bean:write name="testForm" property="check[0]" />
    <br>
    check2:
    <bean:write name="testForm" property="check[1]" />
    <br>
    <html:link action="/forward.do">Forward</html:link>
    </body>
    </html>
    (4)测试结果 和上面的相同。
      

  4.   

    <html:text   property="check[0]">关键是在这里,我写成了CHECK,我以为这里的属性要和type="org.apache.struts.action.DynaActionForm"> 
    <form-property   name="check"   type="java.lang.String[]" 
    size="2"   /> 
    里面的name="check"一样,晕死,我去试一下,真是太感谢了