Отображение списка объектов в таблице jsf

195
23 ноября 2017, 03:29

Здравствуйте!

Есть метод findAll в контроллере:

@Controller("companyController")
public class CompanyController {
@Autowired
private CompanyService companyService;
private String name;
private int id;
public String saveCompany(){
    Company company = new Company();
    company.setName(name);
    companyService.save(company);
    return "WEB-INF/login";
}
public String removeCompany(){
    companyService.remove(id);
    return "WEB-INF/login";
}
public List<Company> findAll(){
    return companyService.findAll();
}
@RequestMapping(value = "/companies", method = RequestMethod.GET)
public ModelAndView companies(ModelAndView modelAndView){
    modelAndView.setViewName("companies");
    return modelAndView;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
}

Который должен выводить список компаний из БД. Каким образом сделать отображение на view? Сделал что-то вроде:

    <h:dataTable value="#{companyController.findAll}" var="company">
    <h:column>
        <f:facet name="header">
            <h:outputText value="Id"/>
        </f:facet>
        <h:outputText value="#{company.id}"/>
    </h:column>
    <h:column>
        <f:facet name="header">
            <h:outputText value="Name"/>
        </f:facet>
        <h:outputText value="#{company.name}"/>
    </h:column>
</h:dataTable>

Но не работает. Выводит:

/login.xhtml @37,69 value="#{companyController.findAll}": Property 'findAll' not found on type org.probation.controllers.CompanyController

Возможно, это и вообще не то, что нужно, конечно.

Как пример, то, что хочу получить со страницы jsp ниже. Нужно похожее на jsf.

<table class="tg">
    <tr>
        <th width="80">ID</th>
        <th width="120">Name</th>
    </tr>
    <c:forEach items="${companyList}" var="company">
        <tr>
            <td>${company.id}</td>
            <td><a href="/companydata/${company.id}" target="_blank">${company.name}</a></td>
        </tr>
    </c:forEach>
</table>
Answer 1

Решение нашел. Наверняка не самое правильное и выглядит, конечно, ужасно, но то, что нужно, в принципе, делает. Логика стала ясна.

<h:dataTable value="#{companyController.findAll()}" var="company">
    <h:column>
        <f:facet name="header">
            <h:outputText value="Id"/>
        </f:facet>
        #{company.id}
    </h:column>
    <h:column>
        <f:facet name="header">
            <h:outputText value="Name"/>
        </f:facet>
        #{company.name}
    </h:column>
</h:dataTable>
READ ALSO
Как использовать bottom navigation view в API 17-19?

Как использовать bottom navigation view в API 17-19?

Можно ли использовать например bottom navigation view в android 42 если она вроде как предназначено для android 6

197
Получение данных с сайта и отображение их из БД

Получение данных с сайта и отображение их из БД

Есть Json файл, через Retrofit получаю из него данные и вывожу в RecyclerViewКак я выяснил сразу данные обычно не выводят, а сначала записывают в БД и уже...

241