PrimeFaces InputNumberRenderer 异常

PrimeFaces InputNumberRenderer Exception

我在 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;)V

可能是什么原因造成的?

我就是这样解决问题的。

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>

注意:InputNumber 使用 Primefaces Extension(PE) 4.0 jar。所以我必须包含一个空的 PE 标签(我使用 pe:blockUI)因为它似乎不包含 PE js 文件,除非它至少有一个 PE 标签。