2017-01-16 8 views
-1

Так что я немного смущен использованием выражений значений и выражений метода в jsf. Мое понимание двух терминов заключается в том, что:javax.servlet.ServletException: невозможно найти метод xyz с параметрами [0] - выражение выражения vs выражение метода

  • Если это свойство боба с функцией геттера и сеттера, оно будет называться выражением ценности.
  • , если это обычный метод класса, а не свойство (следовательно, не getter или seters), чем его называемое выражением метода.

Пожалуйста, исправьте меня, если это не так.

Теперь я смущен тем, как эти два могут быть использованы на странице jsf.

Мой боб имеет метод, как:

@ManagedBean 
@ViewScoped 
public class myBean implements Serializable { 

/*Some bean properties here*/ 

private Set<String> getFilterTerms() { 

     /*Some logic here*/ 

     return filterTerms; 
    } 
} 

Я пытаюсь сделать страницы JSF panelGroup, в зависимости от размера набора, возвращаемого функцией выше.

<h:panelGroup rendered="#{myBean.getFilterTerms().size() > 0}" layout="block" style="margin-top:60px"> 

    //Display some html elements here 

</h:panelGroup> 

Я получил следующую ошибку с этим кодом.

javax.servlet.ServletException: Unable to find method [getFilterTerms] with [0] parameters. 
  1. Можно ли использовать выражение метод, как я имею в оказанной атрибут в ?
  2. Если нет, мне нужно сделать bean-атрибут filterterms, а не реализовывать код в геттерах и сеттерах?

Мой вопрос очень похож на this one, но в ссылке его статический метод, а мой нет.

ответ

0

Вы определили метод getFilterTerms как закрытый.

+0

Публикация теперь дает следующую ошибку: javax.servlet.ServletException: /researcher/index.xhtml @ 61,119 rendered = "# {researchcherQueriesBean.getFilterTerms.size()> 0}": свойство 'getFilterTerms' не найдено по типу myPackage .myBean – rehas

0

Ваш EL не должны использовать «получить» или скобки «()» при обращении к свойству

используйте следующую вместо:

#{myBean.filterTerms.size() > 0} 

примечание нижний регистр «е»