这样的:
jsp页面中有一个固定数据好说,还有两种动态数量数据:工资类型,工资。工资类型是个bean:id,工资类型名称,那个固定数据人员。因为工资类型是可以自定义的,所以工资类型的数量是动态的,可能只有一个,可能有多个(0个不用考虑)。众所周知,jsp中每一个html标签的property都对应formbean中的一个属性,但是jsp中的property成动态数量的了就没法写form了,查了下,是用list,资料中form中的写法很详细,action中也好写,关键是jsp页面中怎么写我迷糊了。(我看 的是这篇文章: http://www.javaeye.com/topic/169559  )form中只有一个list属性,jsp提交的时候也要提交一个list吧,但是jsp中的数据怎么整合成一个list呢????! 
问题补充:
一个工资类型 对应一个用户输入的工资 
工资类型从数据库中取出类型列表iterator   和他对应的工资是用户输入<html:text  /> ,这个在jsp中怎么写啊?资料中那个<logic:iterator >标签的属性看不懂,哪位大侠给写下 这段jsp代码啊。顺便解释下属性的意思。

解决方案 »

  1.   

    logic迭代标签的用法: <logic:iterate/> 
    將指定的Collection物件依序取出至指定的變數,直接看例子會比較清楚,如果userForm的傳回值是Collection物件: 
    代碼: 
    <!-- 複製Collection屬性至id --> 
    <bean:define id="props" name="userForm" property="someCollection"/> 
    <logic:iterate id="prop" collection="<%=props%>"> 
        <bean:write name="prop"/> 
    </logic:iterate> 也可這麼寫: 
    代碼: 
    <logic:iterate id="prop" name="userForm" property="someCollection"> 
        <bean:write name="prop"/> 
    </logic:iterate> 
      

  2.   

    动态的话,可以考虑在ActionForm中采用map来存储数据!
      

  3.   

    不好意思啊,昨晚上12点断网了,今早上有课。晚了。
    大哥大姐,关键是jsp中不知道怎么写啊。
    工资类型=key   工资=value   这个value是用户输入的。
    正常的话就是:<html:text property="key"  />
    然后在form中写个  key  的get。set方法。然后action中就能取值了。但是那个key数量是动态的 key1,key2..,从数据库中取出的。
    按普通方法:jsp页面中能写,但是form中的属性和get set 没法写,不知道有几个key嘛。这样的话jsp怎么写啊。1楼哪位大哥似乎没有用户输入的内容啊,而且输入的内容value怎么和那个key对应起来?、然后还能提交到form,action
    2;楼姐姐 form中用 map的话,jsp中要怎么给map赋值
      

  4.   

    <logic:iterate id="detail" name="xxxxForm" property="list" indexId="index"> 
        <html:text name="detail" property="id"  indexed="true"/> 
    </logic:iterate> 
    在ACTIONFORM里如下定义private class xxxxForm extends ActionForm {    private List<Bean> list = new ArrayList<Bean>();    ...set...get    private Bean detail = new Bean();    public Bean getDetail (int index) {
    while(list .size() <=index){
        list.add(new Bean ());
    }
        return (Bean )list .get(index);
    }
    public void setDetail(Bean detail ) {
    this.detail = detail ;
    }
    }private class Bean {
       private String id;   ...set...get
    }其他没有get,set的添加上,注意Bean的get方法。
      

  5.   

    我刚写过一个这样的东西。
    在JSP页面上不要用STRUTS的<logic:iterate ></logic:iterate>标签,把循环直接写在<%   %>里面
    <%
    for (//有可能循环的次数) {
    %>
    <html:text property='"gongziList[" + i + "]"' >
    <%
    }
    %>
    在FORM中,要对公司list定义两个get,set方法,一个是和String等属性的变量一样的,另一个是用索引来定义的,这一点你应该已经知道了。
    上面的代码就是在JSP中实现的一个模型。
      

  6.   

    4,5楼的实现原理是一样的,只不过<logic:iterate> 提供了这样的接口。可以用JSP代替实现。只不过看上去不太满足MVC框架本身的意义。
      

  7.   

    我刚写错了,应该是这样的:
    <% 
    for (//有可能循环的次数) { 
    %> 
    <html:text property='<%="gongziList[" + i + "]"%>' > 
    <% 

    %>