请问怎么给jsf页面中动态按钮添加事件
添加动态按钮,然后添加事件,但是事件不能成功绑定
ps:页面中按一个按钮,然后生成一个按钮,下面是响应backbean中的代码,按钮能生成,但是事件不能绑定
Application application=FacesContext.getCurrentInstance().getApplication;
List<UIComponent> children=controlPanel.getChildren();
HtmlCommandButton chooseButton=
(HtmlCommandButton)application.createComponent(HtmlCommandButton.COMPONENT_TYPE);
chooseButton.setValue("选课");
children.add(chooseButton);//加入到页面中
/**********************************下面是我的想法**************************************************/
想法一: 用 choosebutton.addActionListener(new ActionListener(){……});//不能成功
想法二: 用 choosebutton.setActionExpression(me);//可是还是不行,相关代码如下
public class ChooseClass()//
{
……
public void Addbutton{
……
ExpressionFactory ef=application.getExpressionFactory();
ELContext elContext =FacesContext.getCurrentInstance().getELContext();
Class[] c = new Class[0];
MethodExpression me = ef.createMethodExpression(elContext,"#{choose.testEl}", Void.TYPE, c);
chooseButton.setActionExpression(me);
chooseButton.setId("Button"+i);
……}
public void testEl()
{
JOptionPane.showMessageDialog(null,"sdfas");
}
……
}
faces-config.xml
<managed-bean>
<managed-bean-name>choose</managed-bean-name>
<managed-bean-class>xmu.edu.cn.ChooseClass</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>