一般来说对于普通的jsp页面我们可以这样写
<table>
<tr><td><input type=text name=add id=add value=1></td></tr>
<tr><td><input type=text name=add id=add value=2></td></tr>
</table>
但是到了strust页面中为什么不能这样定义呢?而且这样一定义他就说有问题
<table>
<tr><td><html:text property="userName" size="16" maxlength="16"/>td></tr>
<tr><td><html:text property="userName" size="16" maxlength="16"/></td></tr>
</table>
他在本地的页面提示说javascript有问题使用动态的DynaActionForm
    <form-beans>
        <form-bean name="HelloForm" type="org.apache.struts.action.DynaActionForm">
        <form-property name="userName"  initial="" type="java.lang.String"/>
        </form-bean>
    </form-beans>
谢谢... ...

解决方案 »

  1.   

    <tr><td><html:text property="userName" size="16" maxlength="16"/>td></tr>
    不知道是不是跟最后一个td少了一个<有关系
    如果是提示JS错误,那跟Struts定义数组无关。
      

  2.   

    如果你把form中的字段也定义成数组的话,是可以的.
    给你我程序的一部分,你参考一下:=======form:public class UserKengenEntryForm extends ActionForm { private String id; private String user_id; private String user_name; private String moduleId[]={};

    public String[] getModuleId()
    {
    return moduleId;
    }
    ......
    public void setModuleId(String moduleId[]) {
    this.moduleId = moduleId;
    }


    public String getId()
    {
    return id;
    } public void setId(String id) {
    this.id = id;
    }

    public String getUser_name() {
    return user_name;
    } public void setUser_name(String user_name) {
    this.user_name = user_name;
    }
      
    public void setUser_id(String user_id) {
    this.user_id = user_id;
    }
    public String getUser_id() {
    return user_id;
    }
      }
    ......===========jsp:
    ...<TABLE borderColor="#687bc4" cellSpacing="0" borderColorDark="#ffffff" cellPadding="0" width="670" borderColorLight="#687bc4" border="1" style="TABLE-LAYOUT: fixed" >
    <%int trNo=0;%>

    <logic:present  name="UserKengenEntryForm" property="moduleId" >

    <logic:iterate id="infoList" name="UserKengenEntryForm" property="moduleId">

    <tr >
    <%trNo++;%> <html:hidden name="UserKengenEntryForm" property='<%="kinouCode["+(trNo-1)+"]"%>' />
    <TD align="left" width="120">&nbsp;<bean:write  name="UserKengenEntryForm" property='<%="moduleId["+(trNo-1)+"]"%>' /></TD>
    <TD align="left" width="120">&nbsp;<bean:write  name="UserKengenEntryForm" property='<%="gyoumuName["+(trNo-1)+"]"%>' /></TD>
    <TD align="left" width="160">&nbsp;<bean:write  name="UserKengenEntryForm" property='<%="kinouName["+(trNo-1)+"]"%>' /></TD>
    <TD align="middle" width="130">
    <html:checkbox name="UserKengenEntryForm" property='<%="kengenFlag["+(trNo-1)+"]"%>'  onclick="<%="fnc_simpleChk("+(trNo-1)+")"%>"/>
    </TD>
    <TD align="middle" width="140">
    <html:select name="UserKengenEntryForm" property='<%="kengenRoll["+(trNo-1)+"]"%>'>
            <html:option value="1" >管理員</html:option>
    <html:option value="0" >一般ユーザー</html:option>
            
        </html:select>
    </TD>
    </TR>
    </logic:iterate>
    </logic:present>

    <input type="hidden" value="<%=trNo%>" name="count" id="count">


    </TABLE>
    ...
      

  3.   

    使用动态的DynaActionForm
        <form-beans>
            <form-bean name="HelloForm" type="org.apache.struts.action.DynaActionForm">
            <form-property name="userName"  initial="" type="java.lang.String[]"/>
            </form-bean>
        </form-beans>
    这个方法我也试过了,但是问题是无论如何他的init的值是一个首地址。有什么办法解决这个问题呢?而且他在返回的过程中,会出现javascript错误。到目前为止还没有觉得strust有什么好用之处。反到觉得他很多时候很烦琐
      

  4.   

    这个不是问题
    只要在formbean 里将userName 
    设定为userName[]就可以解决的
      

  5.   

    只要是页面名字相同的画面项目就会默认为数组,楼主只要在formbean中定义userName[],在生成userName[]的get和set方法就好了,同意 leon_jiang(茫然的系统分析中) 的说法,我用过很好用的。
      

  6.   

    看清题目再回答啊
    LZ没有FormBean.class,是在struts-config.xml里面配置的动态FORM。我也想知道这个问题的最终答案。