我在Java代码中使用PrimeFaces,如下所示:
HtmlForm form = (HtmlForm) event.getComponent();
InputNumber inputNumber = new InputNumber();
inputNumber.setId("input");
form.getChildren().add(inputNumber);
它给出了以下错误:
java.lang.NoSuchMethodError: org.primefaces.component.inputnumber.InputNumberRenderer.renderAccessibilityAttributes(Ljavax/faces/context/FacesContext;Ljavax/faces/component/UIInput;(五
可能由什么原因引起?
这就是我解决问题的方式。
HtmlForm form = (HtmlForm) event.getComponent();
InputNumber inputNumber = new InputNumber();
inputNumber.setId("input1");
ValueExpression inputNumberValue = ef.createValueExpression(
context.getELContext(), "#{ruleManagedBean.inputNumber}",
Double.class);
inputNumber.setValueExpression("value", inputNumberValue);
form.getChildren().add(inputNumber);
在 xhtml 文件中:
<h:form id="form">
<f:event type="postAddToView"
listener="#{ruleManagedBean.populateForm}" />
<pe:blockUI></pe:blockUI>
</h:form>
注意:P Rimefaces Extension(PE( 4.0 jar 用于 InputNumber。所以我不得不包含一个空的 PE 标签(我使用了 pe:blockUI(,因为除非它至少有一个 PE 标签,否则似乎不包括 PE js 文件。