分享
 
 
 

在iterate标签内部使用indexed属性

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在iterate标签内部使用indexed属性

Using the Indexed Attribute in the Scope of the Iterate Tag

常常有这样一种需求,一个form中包含多个提交项,而项的数目是不固定,同时每个项还需要同用户进行交互。例如:一个关于培训反馈的调查表,对于不同的培训,调查的项目是不同的。而我们要做的是不论调查项目如何变化,我们的jsp,formbean和action则不用做任何修改。

1.首先FormBean中

private FeedBackItemBean[] feedBackItems;

public void setPageItems(int index, FeedBackItemBean feedBackItem)

{

pageItems[index]=feedBackItem;

}

public FeedBackItemBean getPageItems(int index)

{

return pageItems[index];

}

/**

* @return Returns the pageItems.

*/

public FeedBackItemBean[] getPageItems()

{

return pageItems;

}

/**

* @param pageItems The pageItems to set.

*/

public void setPageItems(FeedBackItemBean[] pageItems)

{

this.pageItems = pageItems;

}

*请注意一下上面的get/set方法。

其中FeedBackItemBean 是用户定义的Bean,为举例,只列举部分属性:

private String feedBackItemTitle = null;

private String feedBackItemContent = null;

private long feedBackItemValue = 0;

2.在jsp中

代码片断如下:

<logic:notEmpty name="applicationTrainingForm" property="feedBackBean.feedBackItems">

<logic:iterate id="pageItems" name="applicationTrainingForm" property="feedBackBean.feedBackItems" indexId="nIndex">

<logic:equal name="pageItems" property="feedBackItemType" value="<%=String.valueOf(FeedBackConstants.FEEDBACK_CHOOSE)%>">

<TR>

<TD class="TableHeader"><bean:write name="pageItems" property="feedBackItemTitle"/></TD>

<TD width="35%" class="TableHeader">

<html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="10">

10</html:radio>

<html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="9">

9</html:radio>

<html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="8">

8</html:radio>

<html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="7">

7</html:radio>

<html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="6">

6</html:radio></TD>

<TD width="35%" class="TableHeader"><html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="5">

5</html:radio>

<html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="4">

4</html:radio>

<html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="3">

3</html:radio>

<html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="2">

2</html:radio>

<html:radio name="pageItems" indexed="true" property="feedBackItemValue" value="1">

1</html:radio></TD>

</TR>

</logic:equal>

<logic:equal name="pageItems" property="feedBackItemType" value="<%=String.valueOf(FeedBackConstants.FEEDBACK_TEXT)%>">

<TR>

<TD class="TableHeader"><bean:write name="pageItems" property="feedBackItemTitle"/></TD>

<TD colspan="2" class="TableHeader"><html:textarea name="pageItems" indexed="true" property="feedBackItemContent" styleClass="TextBox" cols="100%"/></TD>

</TR>

</logic:equal>

</logic:iterate>

</logic:notEmpty>

注意,经解析以后的html代码如下:

<TR>

<TD class="TableHeader">Structure, focus and logic.</TD>

<TD width="35%" class="TableHeader">

<input type="radio" name="pageItems[0].feedBackItemValue" value="10">10

<input type="radio" name="pageItems[0].feedBackItemValue" value="9">9

<input type="radio" name="pageItems[0].feedBackItemValue" value="8">8

<input type="radio" name="pageItems[0].feedBackItemValue" value="7">7

<input type="radio" name="pageItems[0].feedBackItemValue" value="6">6</TD>

<TD width="35%" class="TableHeader"><input type="radio" name="pageItems[0].feedBackItemValue" value="5">5

<input type="radio" name="pageItems[0].feedBackItemValue" value="4">4

<input type="radio" name="pageItems[0].feedBackItemValue" value="3">3

<input type="radio" name="pageItems[0].feedBackItemValue" value="2">2

<input type="radio" name="pageItems[0].feedBackItemValue" value="1">1</TD>

</TR>

<TR>

<TD class="TableHeader">Depth and breadth</TD>

<TD width="35%" class="TableHeader">

<input type="radio" name="pageItems[1].feedBackItemValue" value="10">10

<input type="radio" name="pageItems[1].feedBackItemValue" value="9">9

<input type="radio" name="pageItems[1].feedBackItemValue" value="8">8

<input type="radio" name="pageItems[1].feedBackItemValue" value="7">7

<input type="radio" name="pageItems[1].feedBackItemValue" value="6">6</TD>

<TD width="35%" class="TableHeader"><input type="radio" name="pageItems[1].feedBackItemValue" value="5">5

<input type="radio" name="pageItems[1].feedBackItemValue" value="4">4

<input type="radio" name="pageItems[1].feedBackItemValue" value="3">3

<input type="radio" name="pageItems[1].feedBackItemValue" value="2">2

<input type="radio" name="pageItems[1].feedBackItemValue" value="1">1</TD>

</TR>

<TR>

<TD class="TableHeader">Impact of activities</TD>

<TD width="35%" class="TableHeader">

<input type="radio" name="pageItems[2].feedBackItemValue" value="10">10

<input type="radio" name="pageItems[2].feedBackItemValue" value="9">9

<input type="radio" name="pageItems[2].feedBackItemValue" value="8">8

<input type="radio" name="pageItems[2].feedBackItemValue" value="7">7

<input type="radio" name="pageItems[2].feedBackItemValue" value="6">6</TD>

<TD width="35%" class="TableHeader"><input type="radio" name="pageItems[2].feedBackItemValue" value="5">5

<input type="radio" name="pageItems[2].feedBackItemValue" value="4">4

<input type="radio" name="pageItems[2].feedBackItemValue" value="3">3

<input type="radio" name="pageItems[2].feedBackItemValue" value="2">2

<input type="radio" name="pageItems[2].feedBackItemValue" value="1">1</TD>

</TR>

大家已经注意到了name的值:

以pageItems[0].feedBackItemValue为例做一下说明,首先struts是以reflect机制工作的,于是他调用的方法应该为getPageItems(0).getFeedBackItemValue(),并以此方法来获取值。读到这里,你应该明白了。

于是,剩下的工作就很简单了,只需要在Action中…

3.Action中

ApplicationTrainingForm applicationTrainingForm = (ApplicationTrainingForm) form;

FeedBackItemBean[] pageItems = applicationTrainingForm.getPageItems();

即可获得用户输入的值。

本文的一切权利归本文作者所有,未经许可不得转载。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有