struts2 页面中给Action中的List类型对象赋值问题。比较急。

teemai 2010-04-09 05:59:48
问题抽象出来就是怎么给迭代的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]不成功。
...全文
490 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lp19890601 2010-04-10
  • 打赏
  • 举报
回复
可以试试<s:set name="count" value="list.size"></set>
teemai 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 javaweb_coder 的回复:]
questionOptionsList[<s:property value='#status.index'/>].isTrue
[/Quote]可以解决,谢谢!!!
zzg_boy 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huxiweng 的回复:]
引用 3 楼 tubage408 的回复:
var
用var也不行啊。关键是那个中括号中的值要不一样。。。
[/Quote]
var
javaweb_coder 2010-04-09
  • 打赏
  • 举报
回复
questionOptionsList[<s:property value='#status.index'/>].isTrue
teemai 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lp19890601 的回复:]
问题抽象出来就是怎么给迭代的name不同的名称,废话少说,上代码。

页面代码:
HTML code
<form method="post" action="updateQuestion">
<s:iterator value="question.questionOptions" status="status">
<tr>
<td>选项<s:property value="#……
[/Quote]已经尝试过这种方法了。没用。不过还是谢谢了。
lp19890601 2010-04-09
  • 打赏
  • 举报
回复
问题抽象出来就是怎么给迭代的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>
teemai 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 myylmyas1 的回复:]
同意2楼做法!每天回帖即可获得10分可用分!
[/Quote]2楼是我自己啊。。。

没有人遇到过这样的问题吗?
myylmyas1 2010-04-09
  • 打赏
  • 举报
回复
同意2楼做法!每天回帖即可获得10分可用分!
teemai 2010-04-09
  • 打赏
  • 举报
回复
一般的在页面中没有用循环的时候可以这么写

<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的值不好控制,所以就是想要[]中的值不一样就好了。
teemai 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tubage408 的回复:]
var
[/Quote]用var也不行啊。关键是那个中括号中的值要不一样。。。
teemai 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hardycheng 的回复:]
questionOptionsList 到底是list还是数组?
[/Quote]是List:
private List<QuestionOptions> questionOptionsList
tubage408 2010-04-09
  • 打赏
  • 举报
回复
var
teemai 2010-04-09
  • 打赏
  • 举报
回复
上面我加颜色的地方好像被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不写了。
hardycheng 2010-04-09
  • 打赏
  • 举报
回复
questionOptionsList 到底是list还是数组?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧