Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
在iterate标签内部使用indexed属性

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

iterate标签内部使用indexed属性

Using the Indexed Attribute in the Scope of the Iterate Tag

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

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

3Action

ApplicationTrainingForm applicationTrainingForm = (ApplicationTrainingForm) form;

FeedBackItemBean[] pageItems = applicationTrainingForm.getPageItems();

即可获得用户输入的值。

 

 

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




相关文章

相关软件