最近在学习JSF,今天研究了一下action与actionlistener的关系,来这里记录总结一下:
两者的区别:
action()无参数,不传入当前控件,有返回值,处理的是业务逻辑.
实际上JSF会自动产生一个"预设的ActionListener"来处理事件,并根据其返回值决定页面跳转,会提交表单。
actionListener(ActionEvent e)有参数,传入当前控件,无返回值,处理页面上组件的"监听事件".不会影响到导航.主要操作当前页面内的组件,或者是进行一些业务型上的改变,或者是修改backing bean(托管Bean)的属性等,并不会出现在页面间的跳转,会提交表单。
两者的关系:
无论提交按钮上用的是action还是actionlistener,在点击了提交后JSF会先检查是否有指定的actionListener,然后再检查是否指定了动作方法并产生预设的ActionListener,并根据其传回值导航页面。
如果指定的按钮中同时绑定了action和actionlistener,那么先执行actionlistener,然后才会去执行action,actionlistener会将方法的值保存在参数actionevent中,这样以来可供action使用;如果指定的按钮只有action时,JSF会为其自动产生一个预设的ActionListener来处理事件,并根据其传回值来决定导向的页面。
如果需要使用同一个方法来应付多种事件来源,并想要取得事件来源的相关讯息,可以让处理事件的方法接收一个javax.faces.event.ActionEvent事件参数。
这是今天看的程序,虽然简单但足以说明问题:
分享到:
相关推荐
如果在没有 Action 的存在,则菜单条和工具条上按钮的状态改变可能不会与组件上按钮的状态同步。 2. Action 接口的继承关系 Action 接口继承自 ActionListener 接口,因此 Action 具有 ActionListener 接口的功能...
5. 调用应用程序:执行组件绑定的action或actionListener,通常涉及业务逻辑、模型数据持久化及导航跳转。 6. 渲染响应:将更新后的数据返回给客户端显示。 **与AOM的关系:** BOS Web应用基于AOM技术框架,采用JSF...
在JSF中,可以通过`action`属性指定动作方法,如`action="#{bean.action}"`,并在组件上添加动作监听器`actionListener="#{bean.listener}"`。动作监听器会在动作方法之前被调用,提供了预处理的机会,而动作方法则...
- **ActionListener**:专门用于处理动作事件,如鼠标点击,通过action(ActionEvent e)方法接收动作事件并触发相应的动作。 由于该方案主要面向有限资源设备,如手机和PDA,因此在界面组件方面进行了精简,仅提供了...
在JavaFX中,类似的逻辑会使用`Stage`、`Scene`、`Button`和`Label`等类,但其API与Swing略有不同,例如,事件处理可能依赖于`onAction`属性和`EventHandler`接口。 在分析这两个源码时,可以关注以下几个关键点: ...
类是对象的模板,对象则是类的实例,它们之间通过继承关系形成类的层次结构。方法是对象能够执行的操作。 2. **Applet编程**:Applet是Java的一种小型应用程序,它可以嵌入到网页中运行。在Java 1.4.x环境中,我们...
4. 弹性布局(SpringLayout)是自JDK 1.4起引入的布局管理器,它允许开发者通过约束来定义组件之间的相对位置和大小关系。选项A“正确”表明弹性布局确实具备这样的灵活性。 5. 窗口监听器(WindowListener)是用于...
ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent e) { // 处理事件 } }; } ``` ##### 6.5 匿名数组表达式和数组初始化器 - **规则**:用于在声明时直接初始化...
Java Swing中的ActionListener接口和Action类就是命令模式的应用。 11. **模板方法模式**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤...
为了实现这一功能,可能需要用到`ActionListener`或者`Action`接口,为每个按钮添加事件监听器,以便在点击时执行粘贴操作。 在实际实现过程中,开发团队可能还使用了版本控制系统(如Git)来协同开发,并将代码...
21. **观察者模式**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。Java的`Observer`接口和`Observable`类实现了观察者模式。 22. **中介者模式**...