使用 primeFaces 我有以下按钮:
<p:commandButton value="Submit" action="#{createDeal.saveDeal}" update="myPanel" />
这工作得很好。但是我想使用java生成那个按钮。我有以下代码:
CommandButton submit = new CommandButton();
submit.setValue("Submit");
submit.setUpdate("myPanel");
FacesContext facesCtx = FacesContext.getCurrentInstance();
Application app = facesCtx.getApplication();
ExpressionFactory elFactory = app.getExpressionFactory();
ELContext elContext = facesCtx.getELContext();
MethodExpression methodExpression =null;
methodExpression = elFactory.createMethodExpression(elContext,"#{createDeal.saveDeal}",String.class, new Class[]{});
submit.addActionListener(new MethodExpressionActionListener(methodExpression));
submit.setActionExpression(methodExpression);
createButtons.getChildren().add(submit);
当我单击提交时,我的表单会验证(这是使用输入上的 setRequired 函数完成的),但表单永远不会命中我的 createDeal 类。我做错了什么,内联按钮有效,但java生成的按钮却没有。
一注。使用 primefaces 内联创建的按钮在页面加载时存在。在进行 Ajax 调用以生成表单 AND 按钮之前,尝试使用 java 添加的按钮不会完成。
任何帮助都会有所帮助。
谢谢。