Выходной текст Java EE с методом и параметром, внутри dataTable

1

Я новичок в 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){}

Теги:
java-ee
ejb

1 ответ

4
Лучший ответ

Попробуйте определить метод для получения объекта Long (object) вместо long (primitive).

public String findStats(Long id){}
  • 0
    Ух ты. это на самом деле работает, спасибо большое. Я даже не знал, что «Лонг» с большой буквы был чем-то особенным.
  • 0
    В Java для каждого примитивного типа существует класс-оболочка. Таким образом, вы можете использовать любое значение примитивного типа в качестве объекта, например Integer i = new Integer (100); Может быть полезно прочитать немного об этих классах-оболочках.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню