最近在学习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与actionListener的区别
JSF中action,actionListener,valueChangeListener的区别
这是我用来测试的一个工程,都不能在rich:dataTable中使用action actionListener 博文链接:https://insomniask.iteye.com/blog/111030
public class findmin extends Applet implements ActionListener JavaAppliet程序,在文本框里输入三个数,显示最小数
ActionListener
根据一个例子讲的,j2ee
ate final String[] COMMAND={"Backspace","CE","C"}; private final String[] M={" ","MC","MR","MS","M+"}; private JButton keys[]=new JButton[KEYS.length]; private JButton commands[]=new JButton[COMMAND....
一个书上的猜数字小游戏 java语言的 图形界面Swing 运用ActionListener 改进的地方还有很多吧 比如排版什么的 有兴趣的拿去吧 共享
package dawei.es;...import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.DocWriteRequest; import org.elasticsearch.action.bulk.*; import org.elasticsearch.acti
public class BlurAndSharpenDemo extends JFrame implements ActionListener { private JPanel jPanel = new JPanel(); //面板jPanel用于容纳模糊、锐化、还原图像按钮 private JButton buttonFile; //打开图像...
public class Calculator extends JFrame implements ActionListener{ JFrame jf; JTextField jtf; JButton jishu = new JButton("="); String sign[] = new String[]{"+","-","*","/","."}; String ops[] = ...
组件被创建之后,可以在组件上调用如下方法来将监听器与它联系起来 addActionListener( ) 可用于 Button,Check, TexyField 等组件 addAdjustmentListener( ) 可用于 ScrollBar 组件 addFocusListener( ) 可用于...
java中extends与implements的区别.docx
ActionListener ActionSource ActionSource2 Application ApplicationFactory ArrayDataModel AttributeTag BigDecimalConverter BigIntegerConverter BooleanConverter ByteConverter ...
按钮事件 这个程序只是按钮事件的一个例子。 它只是为了理解 ActionListener 的概念。
Java 游戏 JPanel类 JButton GridLayout ActionListener实现
this.setTitle("层级关系Demo"); this.setSize(800, 600); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container container = getContentPane(); container.setLayout(null); ...
actionL = new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { try { thisDialog.dispose(); } catch(Exception e) { ...