问题抽象出来就是怎么给迭代的name不同的名称,废话少说,上代码。页面代码:<form method="post" action="updateQuestion">
<s:iterator value="question.questionOptions" status="status">
<tr>
<td>选项<s:property value="#status.index+1"/>
<s:if test="isTrue == 1">
<label><input type="checkbox" name="questionOptionsList[x].isTrue" checked="checked" id="value1_state" value="1"/>正确</label>
</s:if>
<s:else>
<label><input type="checkbox" name="questionOptionsList[x].isTrue" id="value1_state" value="1"/>正确</label>
</s:else>
</td>
<td>
<label> <textarea name="questionOptionsList[x].content"><s:property value="content"/></textarea></label>
</td>
         </tr>
</s:iterator>
<input type="submit" value="提交" />
</form>
根本问题就是那个questionOptionsList[x]中的x要想他每次迭代的时候x要不一样即可。questionOptionsList是我提交到的那个Action里面的一个List对象。现在我的目的就是页面提交过来,要给这个list里面添加上QuestionOptions对象。
Action代码:public class QuestionAction extends ActionSupport { private static final long serialVersionUID = 1L;
protected QuestionManager questionManager;
private Question question;
private QuestionBank questionBank;
private QuestionOptions questionOptions;
private List<QuestionOptions> questionOptionsList; private PageModel pageModel;
private int pageNo;
private String key="";
……
……
getter、setter不写了。
比较急,已经想了一个下午了。都没有成功。[#status.index]不成功。

解决方案 »

  1.   

    questionOptionsList 到底是list还是数组?
      

  2.   

    上面我加颜色的地方好像被HTML标签和谐了。重写贴下代码:
    页面代码:
    <form method="post" action="updateQuestion">
    <s:iterator value="question.questionOptions" status="status">
        <tr>
        <td>选项<s:property value="#status.index+1"/>
            <s:if test="isTrue == 1">
                <label><input type="checkbox" name="questionOptionsList[x].isTrue" checked="checked" id="value1_state" value="1"/>正确</label>
            </s:if>
            <s:else>
                <label><input type="checkbox" name="questionOptionsList[x].isTrue" id="value1_state" value="1"/>正确</label>
            </s:else>
        </td>
        <td>
            <label> <textarea name="questionOptionsList[x].content"><s:property value="content"/></textarea></label>
        </td>
             </tr>
    </s:iterator>
    <input type="submit" value="提交" />
    </form>
    就是上面那个[x]迭代的时候给他不同的值,0、 1、 2、 ……Action代码:
    public class QuestionAction extends ActionSupport {    private static final long serialVersionUID = 1L;
        protected QuestionManager questionManager;
        private Question question;
        private QuestionBank questionBank;
        private QuestionOptions questionOptions;
        private List<QuestionOptions> questionOptionsList;    private PageModel pageModel;
        private int pageNo;
        private String key="";
    ……
    ……
    getter、setter不写了。
      

  3.   

    是List:
    private List<QuestionOptions> questionOptionsList
      

  4.   

    用var也不行啊。关键是那个中括号中的值要不一样
      

  5.   

    一般的在页面中没有用循环的时候可以这么写<textarea name="questionOptionsList[0].content"><s:property value="content"/></textarea>
    <textarea name="questionOptionsList[0].name"><s:property value="content"/></textarea>
    <textarea name="questionOptionsList[1].content"><s:property value="content"/></textarea>
    <textarea name="questionOptionsList[1].name"><s:property value="content"/></textarea>
    <textarea name="questionOptionsList[2].content"><s:property value="content"/></textarea>
    <textarea name="questionOptionsList[2].name"><s:property value="content"/></textarea>
    现在我是迭代不来的,给name的值不好控制,所以就是想要[]中的值不一样就好了。
      

  6.   

    问题抽象出来就是怎么给迭代的name不同的名称,废话少说,上代码。页面代码:
    HTML code
    <form method="post" action="updateQuestion">
    <s:iterator value="question.questionOptions" status="status">
        <tr>
        <td>选项<s:property value="#status.index+1"/>
            <s:if test="isTrue == 1">
                <label><input type="checkbox" name="questionOptionsList[#status.index].isTrue" checked="checked" id="value1_state" value="1"/>正确</label>
            </s:if>
            <s:else>
                <label><input type="checkbox" name="questionOptionsList[#status.index].isTrue" id="value1_state" value="1"/>正确</label>
            </s:else>
        </td>
        <td>試試吧!
            <label> <textarea name="questionOptionsList[x].content"><s:property value="content"/></textarea></label>
        </td>
             </tr>
    </s:iterator>
    <input type="submit" value="提交" />
    </form>
      

  7.   

    questionOptionsList[<s:property value='#status.index'/>].isTrue
      

  8.   

    可以试试<s:set name="count" value="list.size"></set>