| 本教程使用 Sun Java Studio Creator 应用程序开发环境 (IDE) 创建一个将摄氏温度转换为华氏温度的应用程序。该应用程序使用验证器检查数据是否在指定范围内,并通过消息组件报告验证错误。 |
|
目录
|
![[spacer]](/im/a.gif) |
 |
验证器的概念
应用程序收集用户输入的信息(例如登录名和口令)时,验证用户数据是很重要的内容。IDE 提供了一组组件来验证用户输入。可以从组件面板的“验证器”类别下获得的验证器如下所示:
- 双精度范围验证器。检查组件的本地值是否在某个范围内。该值必须是浮点型或可转换为浮点型。
- 长度验证器。检查组件的本地值的长度是否在某个范围内。该值必须是
java.lang.String。
- 长型范围验证器。检查组件的本地值是否在某个范围内。该值必须为任何数值类型或可以转换为长整型的字符串。
可以在一个输入组件上使用多个验证器,以便对不同的条件进行验证。当使用验证器时,该组件还需要一个消息组件,在验证失败时向用户说明。
有关验证过程的详细信息,请参见 J2EE 1.4 教程的题为 验证模型部分。
设计应用程序
- 创建一个新的 Web 应用程序项目,并将其命名为
SimpleValidationExample。
图 1 显示了将在以下步骤中创建的页。
图 1:页面设计 |
- 从组件面板的“基本”类别中,将“文本字段”组件拖放到页面上。将
label 属性设置为 Celsius,并将 text 属性设置为 0.0。
label 和 text 属性位于“属性”窗口中“外观”类别的下方。text 属性值是在运行时显示的缺省值。
- 将一个“标签”组件放置在页面上。将标签的 text 属性设置为
Fahrenheit。
- 将一个“静态文本”组件放在 Fahrenheit 标签的右侧。将 text 属性设置为
32.0。
要求输入值
最简单的验证可确保输入字段中具有某种值。对于此应用程序,需要在提交页之前检查“文本字段”组件是否至少包含了一个字符。还需要一个消息组件在验证失败时向用户说明。
- 选择“文本字段”组件,在“属性”窗口中选中
required 属性的复选框,将其属性设置为 True。
required 属性位于“属性”窗口中“数据”类别的下方。值为 True 表示要求用户在输入字段中输入一个值。如果用户尝试在没有输入值的情况下提交页面,将返回标准验证错误消息。一个红色星号会出现在 Celsius 标签的旁边,表明已设置了 required 属性。
- 从组件面板的“基本”类别中,将“消息”组件拖动到页面上,并将其放在“文本字段”组件的右侧。
- 按住 Ctrl+Shift 组合键,从“消息”组件拖动一条连线到“文本字段”组件。
“消息”组件的文本将变为 textField1 的消息摘要,如图 2 所示。
图 2:消息摘要 |
使用双精度范围验证器
双精度范围验证器用于测试输入组件的值是否在指定范围内。数据类型必须是浮点型或者可转换为浮点型。如果验证失败,则在上面部分添加的消息组件会向用户说明失败。
- 如有必要,请打开组件面板的“验证器”类别。将“双精度范围验证器”从组件面板拖放到“文本字段”组件上。
双精度范围验证器是非可视组件。缺省值 doubleRangeValidator1 出现在“概要”窗口中和“属性”窗口的 validator 属性中,如图 3 所示。
图 3:“概要”窗口和“属性”窗口 |
- 在“概要”窗口中,选中 "doubleRangeValidator1"。
- 在“属性”窗口中设置验证器的范围:
- 将
maximum 属性设置为 1000.0
- 将
minimum 属性设置为 -273.15
- 如有必要,打开组件面板的“转换器”类别。将“双精度转换器”从组件面板拖放到“文本字段”组件上。
此转换器会指定文本字段组件返回的是双精度对象而不是字符串。缺省值 doubleConverter1 出现在“属性”窗口和“概要”窗口中。
添加代码
- 双击“文本字段”组件,在 Java 编辑器中打开其源代码。
- 将下面以粗体显示的代码添加到
textField1_processValueChange 操作方法中。
| 代码样例 1:值更改事件处理程序方法 |
public void textField1_processValueChange(ValueChangeEvent event) {
double celsiusTemp = ((Double) textField1.getValue()).doubleValue();
double fahrenheitTemp = 9.0 * celsiusTemp / 5.0 + 32.0;
staticText1.setValue(new Double(fahrenheitTemp));
} |
测试应用程序
- 运行应用程序。
- 从文本字段中删除 0.0,而不输入值,然后按 Enter 键。检查是否显示文本字段的验证错误,如图 4 所示。
图 4:要求输入时的验证错误 |
- 输入不同的数值以测试应用程序。图 5 显示了输入 100 时的结果。
图 5:成功验证 |
- 检查输入的值超出范围时是否显示验证错误,以及输入字符串值时是否显示转换错误。图 6 显示了输入 -1000 时的结果。请注意,出现验证错误或转换错误时,不会调用值更改侦听程序方法,并且静态文本组件中的值不会更改。
图 6:值超出范围时的验证错误 |
使用验证器执行更多操作
试试看。尝试使用长型范围验证器和长度验证器执行操作。
另请参见:
更多的开发者资源:
此页的最新修改时间:2006 年 4 月 6 日
|