首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

:构建JSF Web Application第一篇

上图中的请求处理器可以有以下几种:普通servlet、Struts、Spring MVC等等。 在本单元中,我们将探讨最近更新的框架JavaServer Faces version 2(JSF2)。...Managed Beans 一个或多个托管bean,提供对请求,会话或应用程序范围内的数据模型对象和应用程序逻辑的访问。...Faces Configuration File(s) 至少提供一个空的faces-config.xml文件。 可以在此文件中定义导航和bean,但从JSF2开始,这不是必需的。...四、实验展示:创建JSF项目的方法 在JBoss Developer Studio中创建JSF2应用程序 幸运的是,JBoss Developer Studio可以非常简单地启动一个新的JSF Web应用程序...首先创建托管Bean:NameBean ? 2.创建XHTML Facelet页面:hello.xhtml ? 3.

1.2K20

富Web应用的架构与转化方法:Web应用系列第二篇

JSF2生命周期本机处理Ajax处理。可以在执行和呈现阶段部分更新组件树。使用facelets标记在页面上对组件进行分组,以指示要处理和呈现的组件。...在此示例中,将更新新成员bean的名称、电子邮件和电话号码。 render 此属性设置为面板的id,该面板对操作完成后要呈现的组件进行分组(执行和呈现阶段)。...action属性就像常规facelets命令按钮一样,属性将在EL引用的bean和在托管bean上调用的方法中更新,也由EL引用。 在许多a4j标签上都可以找到execute和render属性。...快速入门使用客户端验证,使用JSF页面中的标记和相应成员实体bean属性上的JSR-303 bean验证注释。 以下是显示验证注释的Member类的一部分: ?...需要能够在JSF生命周期中的某个点应用验证,我们知道所有属性值已成功存储在支持页面的托管bean中。 可以使用RichFaces图验证器。 使用图形验证器分为两步。

3.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JSF之经常使用注解

    @ManagedBean 以托管 bean 的形式注冊一个类实例。然后将其放入到使用当中一个 @...Scoped 凝视指定的范围内。假设没有指定不论什么范围。...JSF 将把此 bean 放入请求范围。假设没有指定不论什么名称,JSF 将把类名的第一个字母转换为小写,形成一个托管 bean 名称;比如。...假设类名为 UserBean,那么 JSF 将创建一个托管 bean,其名为userBean。eager 和 name 属性都是可选的。...@ApplicationScope 在应用程序范围内存储托管 bean。 @ViewScope 在视图范围内存储托管 bean。...@CustomScope 在定制范围内存储托管 bean。 定制范围就是指能够由页面创建者訪问的地图。能够通过编程的方式控制定制范围内的 bean 的可视性和生命周期。

    57610

    工作流中容器化的依赖注入!Activiti集成CDI实现工作流的可配置型和可扩展型

    BPMN业务流程通常是一个长时间运行的操作,包含了用户和系统任务的操作 运行过程中,流程会分成多个单独的工作单元,由用户和应用逻辑执行 在activiti-cdi中,流程实例可以分配到cdi环境中,关联展现成一个工作单元...,并让流程实例继续执行 BusinessProcess bean是 @Named bean, 意思是导出的方法可以通过表达式语言调用: 比如在JSF页面中.下面的JSF 2 代码启动一个新的交互,分配给一个用户任务实例...在流程中引用bean Activiti-cdi使用自定义解析器把CDI bean暴露到activiti El中,可以在流程中引用这些bean: bean中处理事件的方式: 使用@Observes注解声明特定的事件监听器 事件监听是类型安全的 流程事件类型是org.activiti.cdi.BusinessProcessEvent 一个简单事件监听方法示例...: 可以保证监听器只在事件中的事务成功之后才处理 public void onShipmentSuceeded(@Observes(during=TransactionPhase.AFTER_SUCCESS

    1.1K20

    JAVA CDI 学习(2) - Scope 生命周期

    在上一节中,我们已经知道了如何用@Inject实现基本注入,这一节研究Bean实例注入后的“生命周期”,web application中有几种基本的生命周期(不管哪种编程语言都类似) 1、Application...生命周期 即:web application启动后,处于该生命周期级别的对象/变量,将一直存在,可以被所有web应用的用户共同访问,通常用来做网站计数器,实现流量访问之类。...我们在web开发中,经常会用到ajax,page1上的ajax向另一个页面page2发起请求时,会建立client到server的短时连接,如果想在ajax请求期间,让多个page之间共同访问一些变量(...,每次生成Conversation实例时,系统会分配一个id给当前Conversation,多个页面之间根据唯一的cid来匹配使用哪个Conversation范围内的Bean对象,如果指定的id不对(比如...实例仍然是一个ApplicationScoped的对象。

    1.3K100

    JSF本地联调工具实践

    图2 JSF本地联调工具调用关系 看过架构图大家会对工具有个大体的了解,利用redis的发布订阅模式来完成jsf请求到响应的数据传递工作。...之前可以看到项目里会有引入通用jar包后,需要手动显式在xml中配置对应bean才能正常使用这个功能。...除此之外,通过springbootstarter方式直接将对应bean引入到容器中,这不乏是一种好的方案。 2....其次就是jsf中的组件是否由于spring托管,只有被spring容器托管,才能通过简单配置来控制插件行为,比如插件是否开启。...并未能获取到 图7 查看JSF内部对象是否被Sping容器管理 这个问题也可以解决,通过提供一个静态工具类,在容器启动时拿到spring应用上下文对象就可以了。

    1.4K20

    Java零基础到高级

    SE部分 1、java基础:基础语法;面向对象(重点);集合框架(重点);常见类库API; 2、java界面编程:AWT;事件机制;Swing; 3、java高级知识:Annotation;IO和NIO...基础:基本HTML标签;常见表单标签;DIV+CSS布局; 8、JavaScript知识:javascript基本语法;javascript基本对象特征;Json语法;深刻理解javascript的动态特征...Jsp语法、EL、内置对象;Servlet API;Servlet 3.0注解;Listener和Filter; 14、Web编程进阶:自定义标签库;MVC和DAO、Servlet、标签的作用;JSTL...配置、管理;Bean生命周期;SP、EL;AOP与事务权限控制;S2SH整合开发;Spring整合Jpa; 九、经典Java EE 20、JSF:MVC与JSF设计理念;托管Bean与导航-模型...;JSF流程与事件机制;JSF标签库;类型转换与输入检验; 21、EJB及相关技术:JNPI与RMI;会话Bean及其生命周期;IoC与EJB拦截器;JMS与MDB;会话Bean与Web Service

    55710

    SpringBoot源码解析(三):启动开始阶段

    设置为 true configureHeadlessProperty(); // 2.获取Spring应用启动监听器,用于在应用启动的各个阶段执行自定义逻辑 SpringApplicationRunListeners...return context; } 一、入口 主要分为两个步骤,先获取Spring应用启动监听器,再调用启动方法 // 2.获取Spring应用启动监听器,用于在应用启动的各个阶段执行自定义逻辑...* @param environment 配置的环境对象,可用于访问和自定义环境属性。...类图如下: 1.1.1、EventObject EventObject是Java标准库中的类,是所有事件的通用基类 source属性表示事件的来源对象 帮助监听器识别引发事件的对象 支持事件的上下文传递...、资源清理或记录日志等 触发时机:在启动过程中遇到异常导致启动失败时发布 2、广播器ApplicationEventMulticaster ApplicationEventMulticaster的核心功能是管理监听器

    10100

    Spring Bean的生命周期

    对于普通的Java对象,当new的时候创建对象,当它没有任何引用的时候被垃圾回收机制回收。而由Spring IoC容器托管的对象,它们的生命周期完全由容器控制。...二、对于ApplicationContext容器:当容器启动后,获取对象BeanDefinition信息,实例化所有Bean 2、设置对象属性(依赖注入) 实例化后的对象封装在BeanWrapper...中,容器根据BeanDefinition中的信息和BeanWrapper对象提供的设置属性的接口完成依赖。...(String beanId)方法,参数为spring中bean的id值 2、如果实现了BeanFactoryAware接口,会调用实现setBeanFactory()方法,传递spring工厂本身。...由于这个方法是在Bean初始化结束时调用的,所以可以被应用于内存或缓存技术; 5、InitializingBean和init-method 如果Bean在Spring配置文件中配置了 init-method

    26020

    灵活运用这9种Spring中的设计模式,老板肯定给你升职加薪!

    Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。...实质: 由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。...容器中bean的实例化阶段: 实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点: 各种的Aware接口,比如 BeanFactoryAware...,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例。...通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean

    48500

    Spring 中经典的 9 种设计模式,面试必备!

    Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。...实质: 由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。...容器中bean的实例化阶段: 实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点: 各种的Aware接口 ,比如 BeanFactoryAware...,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例。...通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean

    41430

    Spring中的9种设计模式

    Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。...实质: 由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。...容器中bean的实例化阶段: 实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点: 各种的Aware接口,比如 BeanFactoryAware...,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例。...通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean

    24110

    9种设计模式在Spring中的运用

    Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。...实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。...容器中bean的实例化阶段: 实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点: 各种的Aware接口,比如 BeanFactoryAware...,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例。...通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean

    42510

    9种设计模式在Spring中的运用

    Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。...实质: 由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。...容器中bean的实例化阶段: 实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点: 各种的Aware接口,比如 BeanFactoryAware...,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例。...通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean

    55110

    Spring 中经典的 9 种设计模式

    Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。...实质: 由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。...容器中bean的实例化阶段: 实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点: 各种的Aware接口 ,比如 BeanFactoryAware...,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例。...通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean

    32220

    2021 最新 Spring中用到的设计模式 总结

    Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。...实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。...容器中bean的实例化阶段: 实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点: 各种的Aware接口 ,比如 BeanFactoryAware...,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例。...通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean

    26110

    9种设计模式在Spring中的运用,一定要非常熟练!

    Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。...实质: 由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。...容器中bean的实例化阶段: 实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点: 各种的Aware接口,比如 BeanFactoryAware...,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例。...通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean

    2.7K20

    Spring源码核心知识点凝练总结

    IOC容器的职责: 依赖处理: 依赖查找和依赖注入 托管资源(bean或其他资源)的生命周期 配置管理(容器自身配置,外部化配置,托管的资源配置等) ---- DI理解 依赖查找和依赖注入是IOC的实现策略...依赖注入就是在依赖查找结束后,IOC容器将找到的依赖对象通过构造器,字段或者setter方法等方式注入到当前bean的属性中。...事件监听器注册: 获取BeanDefinition集合中所有类型为ApplicationListener的事件监听器,然后注册到事件多播器中。...实例化阶段: 从BeanDefinition中获取bean的全类名,从ClasUtils中获取默认的线程上下文类加载器,利用线程上下文类加载器去加载用户的bean,然后实例化出一个bean实例对象。...通过该特性,Spring处理setter方法产生的循环依赖时,可以在某个bean实例化完毕后,先缓存一个ObjectFactory对象(调用getObject方法可返回当前正在初始化的Bean对象),如果初始化过程中依赖的对象又依赖于当前

    65710

    Spring事件

    接口 2自定义事件 Spring允许创建和发布自定义事件,默认情况下是同步的,这具有一些优点,例如监听器能够参与发布者的业务上下文。...,我们的自定义监听器如何使用泛型事件的泛型类型进行参数化,这使得onApplicationEvent()方法类型安全,也避免了必须检查对象是否是特定事件类的实例并将其强制转换。...从Spring 4.2开始,事件监听器不需要实现ApplicationListener接口 的bean,它可以通过@EventListener注解在托管bean的任何公共方法 上注册: @Component...总结 在这篇文章中,我们讨论了在Spring中处理事件的基础知识,创建一个简单的自定义事件,然后发布,最后在监听器中处理它。 我们还简要介绍了如何在配置中启用事件的异步处理。...然后我们了解了Spring 4.2中引入的改进,例如注解驱动的监听器,更好的泛型支持以及绑定到事务阶段的事件。

    79150
    领券