/**
* 验证表单
* <p>
* 需要input元素的constraint属性的支持
* <p>
*
* 例如 年龄<textbox constraint="/^[0-9]*$/:仅允许输入数字"/>
*
* @param formContainer
* Input元素公共
* @return 如果验证成功返回true,否则返回false
*/
public static boolean validateForm(Component formContainer) {
return validateForm(formContainer, true);
}
/**
* 验证表单
* <p>
* 需要input元素的constraint属性的支持
*
* 例如 年龄 <textbox constraint="/^[0-9]*$/:仅允许输入数字"/>
*
* @param formContainer
* Input元素公共组件,即需要验证的输入元素所在的公共容器组件
* @param showError
* 是否显示错误提示
* @return 如果验证成功返回true,否则返回false
*/
public static boolean validateForm(Component formContainer,
boolean showError) {
try {
validateForm0(formContainer, showError);
return true;
} catch (Exception e) {
return false;
}
}
private static void validateForm0(Component formContainer, boolean showError) {
List<Component> cList = formContainer.getChildren();
if (cList == null || cList.size() < 1) {
return;
} else {
for (Component c : cList) {
if (c instanceof InputElement && !((InputElement) c).isValid()) {
if (showError) {
((InputElement) c).getText();
}
throw new RuntimeException("表单输入不正确!");
} else {
validateForm0(c, showError);
}
}
}
}