软构件与中间件技术Java EE:第5章 Java EE平台上下文和依赖注入.ppt
文本预览下载声明
5.2 上下文和依赖注入应用实例 5.2.2 guessnumber实例 public void validateNumberRange( //定义用户验证器 FacesContext context, UIComponent toValidate, Object value) { if (remainingGuesses = 0) { FacesMessage message = new FacesMessage(No guesses left!); context.addMessage( toValidate.getClientId(context),message); 5.2 上下文和依赖注入应用实例 5.2.2 guessnumber实例 ((UIInput) toValidate).setValid(false); ? return; } ? int input = (Integer) value; ? if ((input minimum) || (input maximum)) { ((UIInput) toValidate).setValid(false); 5.2 上下文和依赖注入应用实例 5.2.2 guessnumber实例 FacesMessage message = new FacesMessage(Invalid guess); context.addMessage( toValidate.getClientId(context), message); } } } 5.2 上下文和依赖注入应用实例 5.2.2 guessnumber实例 二、Facelets页 页面的操作主要体现在表单中,分析一下各个组件的EL表达式很容易理解这个应用。 value=#{userNumberBean.userNumber}“ validator=#{userNumberBean.validateNumberRange}“ action=#{userNumberBean.check}“ action=#{userNumberBean.reset}“ 注意理解页面上所使用的EL表达式。 5.1 上下文和依赖注入的概念 5.1.3 完善注入的手段 完整的Printer代码如程序清单5.9 import javax.inject.Inject; import javax.enterprise.context.RequestScoped; import javax.inject.Named; ? ?@Named @RequestScoped public class Printer { 5.1 上下文和依赖注入的概念 5.1.3 完善注入的手段 @Inject @Informal Greeting greeting; private String name; private String salutation; ? public void createSalutation() { this.salutation = greeting.greet(name); } 5.1 上下文和依赖注入的概念 5.1.3 完善注入的手段 public String getSalutation() { return salutation; } ? public void setName(String name) { = name; } 5.1 上下文和依赖注入的概念 5.1.3 完善注入的手段 ? public String getName() { return name; } } 5.1 上下文和依赖注入的概念 5.1.3 完善注入的手段 在完成了完整的Printer类的定义之后,就可以在Web层中使用这个bean了。在Facelets页面中使用托管bean,需要生成一个表单使用用户界面元素调用其方法并显示结果。具体的Facelets页面代码在程序清单5.11中给出。 5.1 上下文和依赖注入的概念 5.1.4 用生产者方法注
显示全部