- 论坛徽章:
- 0
|
很久没写文章了,今天碰到一个问题,觉得很有必要写点。
大家是否碰到过一个画面上有很多个具有一定规则的控件,却不知道如何来控制他们呢?据个例子,画面上有N排(0到100,具体数目根据数据库得到),每排有5个列的Text控件。绝大多数人可能想去在ActionForm里,去定义N*5个String,或者想方设法.去定义一个数组来表示。第一种方法是很郁闷的,而第二种方法,处理难度大.我很少看见有在ActionForm定义数组来表示Text的.
ActionForm定义数组表示mulityBox,我倒是碰过,也写过相关的文章.具体可以从“struts标签之浅入深出”文章中查到.
那到底如何解决按一定规则排序的Text按钮呢?下面介绍另一种技术,活用Bean。
Jsp:
SampleForm:
private SampleBean sampleBean;
public SampleForm() {
this.sampleBean = new SampleBean();
}
sampleBean:
private String sampleField;
Action:
String str = getForm().GetSampleBean().GetField();
此时str内容为控件Text中输入的内容
getForm().GetSampleBean().SetField(“你好”);
此时控件Text中显示的内容为”你好”
那个N排(N由数据库决定)有5个列的Text控件如何控制呢
SampleForm中定义
List sampleBeanList;
SampleBean:
String field1,....,String field5;
Action:
String str = getForm().GetSampleBeanList().get(2).SetField2();
此时str 内容为第三排,第二列控件Text中输入的内容
getForm().GetSampleBeanList().get(2).SetField2(“你好”);
此时第三排,第二列控件Text中显示的内容为”你好”
到此大家明白了吗?
下面来个保留节目,上面的情况最后画面输出的是N行5列的固定矩形Text框集合.
如果最后画面输出行数固定列数不一,或者行数和列数都不定的Text框时,该如何处理呢
" />
" />
SampleForm:
定义一个rowList,row又是一个List,里面是一个个数目不定的column.
每个column包含code和name.
Action里使用rowList时,是把columnList作为假象的entity放入rowList中.
这样每行的列数就可以根据每个columnList的size不定,列数发生变化.
List包含List,相对来说可能比较复杂,但只要思路清楚了,也就不难了.
以后碰到类是的问题,可以参考.切记任何复杂的都是简单的集合.请灵活运用.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3787/showart_57160.html |
|