深入浅出GWT(二)——基础篇之表单数据处理

[size=large][color=blue]【前言】 表单处理实际上就是对表单组件的输入输出的数据的处理。常见的表单数据的输入(新增或修改)输出(查询或修改)载体是TextField、DateField、TextArea、comboBox、RadioGroup、CheckBoxGroup。下面对这几种组件的数据处理一一进行阐述。
声明:请结合《深入浅出GWT(一)——基础篇之表单设计》中对应的例子。


一、TextField-->文本框数据处理
1、 输入处理:获取TextField输入的值比较简单,调用getValue()方法就可以了。
举例-->获取投票标题的值代码如下:
String ballot_title = ballotTitle.getValue().trim;

2、输出处理:输出TextField的值也很简单,调用setValue(String value)方法就可以了。
举例-->输出投票标题的值代码如下:
ballotTitle.setValue(ballotData.getBallot_title());
说明:
(1) ballotData是一个模型,封装了投票的所有属性,从数据库中查出的值保存到这个模型中,方便处理数据。
(2) getBallot_title()获取投票标题的值。


二、DateField-->时间组件数据处理
1、输入处理:获取DateField的值有两种方法即getValue()和getRawValue(),前者获取的是Date类型的值,后者获取的是String类型的值,在做校验时需要用到Date的值,例如经常会用到与当前时间进行比较等,做数据处理的时候(例如拼接时分秒或者设定特殊的时间格式等)用String类型就比较方便。
举例-->获得投票的开始时间代码如下:
(1)Date sendStartDate = getBeginDate.getValue();
(2)String sendStartDateString = getBeginDate.getRawValue();

2、输出处理:与之对应的是setValue(Date value)和setRawValue(String value)。
举例-->输出投票的开始日期
(1)getBeginDate.setValue(ballotData.getStartDate());
(2)getBeginDate.setRawValue(ballotData.getStartDateString());


三、TextArea-->文本域数据处理
文本域与文本框的数据输入输出方式是一样的,具体处理方式请参上面的TextField。


四、ComboBox-->下拉列表数据处理
1、输入处理:获取ComboBox的数据需要注意,下拉列表存的什么值,获取的就是什么值。
举例-->获取页面类型下拉列表所选择的值:
ComboBox<State> pageTypeComboBox = new ComboBox<State>();
State state = pageTypeComboBox.getValue();
State封装的是自己想要的各种属性,获取到State就相当于获取到了自己所想要的各种属性值。
一般想要的是菜单项的ID,那么String id = state.get("id"));

2、输出处理:调用setValue(Object o)方法。
举例-->设置数据库保存的页面下拉列表的值,代码如下:
bookNewsState.setValue(state);


五、RadioGroup-->单选框组件数据处理
分析,单选框选中的话值为true,反之为false,一般我会把单选框组件所选中的值保存在一个属性里面,这样的话我们只需要分别标识各个单选框单元的值就行了,例如有三个单选框单元radio1、radio2、radio3,分别标记为字符串类型的1、2、3,选中了那个保存数据的时候就储存相应的值。
1、输入处理:调用对应的单选框单元Radio的getValue()值,若为true,保存相应的值,举例如下:
String value = "1";
boolean value1 = radio1.getVaule;
boolean value2 = radio2.getVaule;
boolean value3 = radio3.getVaule;

if (value2)
{
value = "2";
}
else if (value3)
{
value = "3";
}

最后保存value即为该单选框组件所需要的值。

2、输出处理:输出处理很简单,接上面的例子:若value值为"2",那么调用radio2的setValue(true),其它设置为false即可。


六、CheckBoxGroup-->复选框组件数据处理
分析:复选框组件的数据处理方式可以参照单选框,不同的是它可以选择多个选项。下面再介绍另外一种处理方式(RadioGroup数据处理也可以参照此方法)。
思路:每一个选项我们都可以把它视为一个boolean型的值,选中为true否则为false,或者用1/0标记(选中为1未选中未0),视个人喜好了。
1、输入处理:接《深入浅出GWT(一)——基础篇之表单设计》中的CheckBoxGroup例子,获取复选框组件数据的数据代码如下:
Integer isTop = 0;
Integer isInMainPage = 0;

StringBuffer sb = new StringBuffer();
for (CheckBox box: checkBoxGroup.getAll())
{
if (box.getValue())
{
sb.append(box.getId() + ",");
}
}

String s = sb.toString();

if(null != s && !"".equals(s))
{
if("0,".equals(s))
{
isTop = 1;
}
else if("1,".equals(s))
{
isInMainPage = 1;
}
else
{
isTop = 1;
isInMainPage = 1;
}
}

2、输出处理:接上例,代码如下:
//获取分类置顶的值
int isTopKey = newsModel.getIsTop();
if(isTopKey == 1)
{
isTopCB.setValue(true);
}
//获取首页显示的值
int isInmainPageKey = newsModel.getIsInMainPage();
if(isInmainPageKey == 1)
{
isInMainPageCB.setValue(true);
}


【结束语】 以上就是常见的几种表单组件的数据处理方法,若掌握了一门页面处理技术(如JSP),那么GWT中的数据处理也就不难理解了,因为原理上是一样的,处理方式相互之间还可以借鉴。若大家有更好的处理方式,欢迎不吝赐教。[/color][/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值