JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段****** - 编程入门网
ception) {
addErrorMessage(contactValidationException.getLocalizedMessage());
return null;
}
/* Turn form off, turn link on. */
form.setRendered(false);
addNewCommand.setRendered(true);
/* Add a status message. */
if (contactRepository.persist(contact) == null) {
addStatusMessage("Added " + contact);
} else {
addStatusMessage("Updated " + contact);
}
return "contactPersisted";
}
private void addErrorMessage(String message) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, message, null));
}
JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段******(15)时间:2011-08-09 IBM Richard Hightower在清单 31 中,persist() 方法调用 contact 对象上的 validate() 方法。它捕获任何异常并把异常 错误消息转换为 FacesMessage。如果发生异常,它会返回 null,其含义为:留在当前视图上,不要导航 到下一个视图。 实际的检验代码包含在模型中 — 即,Contact 类的 validate() 方法,见清单 32。这一点很重要: 在为联系人添加更多的检验代码时,不需要修改控制器或视图层。 清单 32. 检验代码在模型中,而不在控制器中
应用程序级检验很简单,也很容易使用。它的优点是: 容易实现 不需要单独的类(定制检验器) 页面作者不需要指定检验器 应用程序级检验的缺点是,它在其他形式的检验(标准、定制和组件)之后执行,而且错误消息只在 执行其他形式的检验之后显示。 最后,应用程序级检验应该只用于需要业务逻辑检验的场合。 后端 bean 中的定制检验器 对于标准 JSF 检验器不支持的数据类型(包括电子邮件地址和 ZIP 编码),需要构建自己的检验组 件。如果希望对显示给最终用户的检验消息进行显式地控制,也需要构建自己的检验器。通过使用 JSF, 可以创建可插入的检验组件,可以在整个 Web 应用程序中重用这些组件。 如果不想创建单独的检验器类,也可以在后端 bean 方法中实现定制的检验。这种方式对于应用程序 开发人员更合适。例如,可以在托管 bean 中编写一个方法来检验电话号码,见清单 33: 清单 33. 电话号码检验
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |