Я получил решение, я поставил следующий код
editLink.setOncomplete("Richfaces.showModalPanel('editPanel');");
вместо
editLink.setValueExpression("onComplete", createValueExpression("#{rich:component('editPanel')}.show()", RichFunction.class))
McDowell : Теперь перейдем к выражению 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#PopulateDynamicDatatable
Спасибо Бауке Луитсен Шольц (BalusC)