javax.el.ELException: функция 'rich:component' не найдена
Я создаю модель в бобе.
Мои строки кода Java похожи на это
UIColumn column = new HtmlColumn();
dynamicDataTable.getChildren().add(column);
UIAjaxCommandLink editLink = new HtmlAjaxCommandLink();
editLink.setId("edit");
HtmlGraphicImage img = new HtmlGraphicImage();
img.setUrl("../images/edit.gif");
editLink.getChildren().add(img);
editLink.setActionExpression(createActionExpression("#{myBean.editRow}", String.class));
editLink.setAjaxSingle(true);
editLink.setValueExpression("onComplete", createValueExpression("#{rich:component('editPanel')}.show()", RichFunction.class));
editLink.setValueExpression("reRender", createValueExpression("editPanel", String.class));
column.getChildren().add(editLink);
Я получаю ошибку. То же самое работает на странице xhtml.
<a4j:commandButton value="Edit" ajaxSingle="true"
oncomplete="#{rich:component('editPanel')}.show()"
actionListener="#{myBean.addActionListener}" reRender="editPanel"/>
Как я могу устранить вышеуказанную ошибку.
1 ответ
Решение
Я получил решение, я поставил следующий код
editLink.setOncomplete("Richfaces.showModalPanel('editPanel');");
вместо
editLink.setValueExpression("onComplete", createValueExpression("#{rich:component('editPanel')}.show()", RichFunction.class))
Макдауэлл: Теперь перейдем к выражению createValueExpression:
private ValueExpression createValueExpression(String valueExpression, Class<?> valueType) {
FacesContext facesContext = FacesContext.getCurrentInstance();
return facesContext.getApplication().getExpressionFactory().createValueExpression(
facesContext.getELContext(), valueExpression, valueType);
}
private MethodExpression createActionExpression(String actionExpression, Class<?> returnType) {
FacesContext facesContext = FacesContext.getCurrentInstance();
return facesContext.getApplication().getExpressionFactory().createMethodExpression(
facesContext.getELContext(), actionExpression, returnType, new Class[0]);
}
Я использовал пример из этого, чтобы создать эту таблицу с динамическими столбцами.
http://balusc.blogspot.com/2006/06/using-datatables.html
Спасибо Бауке Луитсен Шольц (BalusC)