Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1963622
  • 博文数量: 221
  • 博客积分: 10045
  • 博客等级: 上将
  • 技术积分: 2252
  • 用 户 组: 普通用户
  • 注册时间: 2005-01-25 20:28
文章分类

全部博文(221)

文章存档

2012年(1)

2008年(4)

2007年(11)

2006年(26)

2005年(179)

我的朋友

分类: Java

2005-11-15 18:32:26

很久没写文章了,今天碰到一个问题,觉得很有必要写点。
  大家是否碰到过一个画面上有很多个具有一定规则的控件,却不知道如何来控制他们呢?据个例子,画面上有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,相对来说可能比较复杂,但只要思路清楚了,也就不难了.

以后碰到类是的问题,可以参考.切记任何复杂的都是简单的集合.请灵活运用.

阅读(1391) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~