动态添加动作到commandButton

时间:2013-02-23 20:17:43

标签: jsf tomahawk

我使用JSF 2.0和tomahawk-lib动态创建html元素。我想向HtmlCommandButton添加一个动作命令,但无法完成它。在此先感谢您的帮助。我可以看到按钮和onclick被触发,因此必须存在与方法表达式相关的错误。

HtmlCommandButton submitLogin = new HtmlCommandButton();
FacesContext fc = FacesContext.getCurrentInstance();
ELContext ctx = fc.getELContext();
String expression = "#{hangmanController.login}";
Class[] parameterTypes = new Class[0];
MethodExpression me = fc.getApplication().getExpressionFactory().
     createMethodExpression(ctx, expression, String.class, parameterTypes);
submitLogin.setActionExpression(me);
submitLogin.setOnclick("alert('BP');");

1 个答案:

答案 0 :(得分:1)

以编程方式创建的UIInputUICommand组件必须具有固定的ID集,否则JSF会在应用请求值阶段期间无法识别与请求中的输入和命令组件关联的请求参数参数图。

submitLogin.setId("submitLogin");