Я новичок в Java Enterprise, извините, если на это был дан ответ, я не смог найти ничего конкретного. Я пытаюсь зациклиться на datatable и вызывать метод с идентификатором из каждого результата и отображать некоторую информацию. Мой XML выглядит так:
<h:dataTable styleClass="data" value="#{moduleBean.allModules}" var="m" class="modulelist">
<h:column>
<f:facet name="header">#{uistrings.module_name}</f:facet>
#{m.name}
</h:column>
<h:column>
<f:facet name="header">#{uistrings.approved}</f:facet>
<h:outputText value="#{moduleBean.findStats(m.id}"/>
</h:column>
</h:dataTable>
moduleBean.allmodules() возвращает список объектов модуля. Это прекрасно работает. Проблема заключается в модулеBean.findStats().
Сообщение об ошибке:
javax.el.MethodNotFoundException: java.lang.NoSuchMethodException: no.uia.slit.web.ModuleBean$$OwbNormalScopeProxy0.findStats(java.lang.Long)
viewId=/teacher/status.xhtml
location=D:\code\github\neiva\build\web\teacher\status.xhtml
phaseId=RENDER_RESPONSE(6)
Caused by:
java.lang.NoSuchMethodException - no.uia.slit.web.ModuleBean$$OwbNormalScopeProxy0.findStats(java.lang.Long)
at java.lang.Class.getMethod(Class.java:1773)
/teacher/status.xhtml at line 27 and column 72 value="#{moduleBean.findStats(m.id)}"
Если я изменю метод, чтобы не принимать какие-либо параметры, и называть его "# {moduleBean.findStats"}, он работает, но как я могу передать параметры методу?
метод определяется следующим образом: public String findStats(long id){}
Попробуйте определить метод для получения объекта Long (object) вместо long (primitive).
public String findStats(Long id){}