【问题标题】:Dynamic table in JSP and Spring MVCJSP 和 Spring MVC 中的动态表
【发布时间】:2020-04-05 13:44:37
【问题描述】:

我正在使用 Spring MVC 和 Hibernate 编写应用程序。在我的一个应用程序页面中,JSP 页面由基于最终用户指定的标准动态生成的表组成。例如,最终用户在页面上输入“员工人数”,点击提交后,下一页显示员工人数等于或大于最终用户输入值的所有公司。对于每个公司,都会生成一个单独的/单独的表,表的标题显示数据库中的公司名称(这部分工作完全正常)。现在在公司本身的表格中,我只想显示该公司的数据,同样,每个表头都将显示公司名称和该公司的数据。关于如何在表格中显示公司数据的任何想法。下面是我的代码

控制器



                    Int numberOfemployees // This value is entered by the end user    
                    List<Company> companies = companyService.listAllCompany(numberOfEmployees );   


                    ModelAndView companiesResults = new ModelAndView("companies-result");
                    CompanyForm companyForm  = new CompanyForm();

                    companyForm.setCompanies(companies);
                    companiesResults.addObject("company", companies);

                    for (Company company : companies) {

                        int company_id  = company.getCompany_id(); //Get id of the company to get its attributes/data from database

                    List<CompanyAttribute> companyAttributes =companyService.listCompanyAttributes(company_id);


                    }


                    companyForm.setCompanyAttributes(companyAttributes);

                    companiesResult.addObject("companyForm", companyForm);                  
                    companiesResult.addObject("companyAttributte", companyAttributes);              

                        } 

下面是我的 JSP

<c:forEach items="${companyForm.companies}" var="company" varStatus="status">

              <h6>${company.company_name}</h6>              
              <div class="table-responsive">            
                <table>


                  <thead>

                    <tr>                     
                      <th>Company portfolio</th>
                      <th>Company points</th>                                                                       
                    </tr>
                  </thead>

              <tbody>                 
                   <c:forEach items="${companyForm.companyAttributes}" var="companyAttribute"  varStatus="status">                              
                        <tr>
                            <td>${companyAttribute.portfolio}</td>
                            <td>${companyAttribute.points}</td> 

                        </tr>                                                                                                                                           
                    </c:forEach>                                           
                  </tbody>                                                    
                </table>

    </c:forEach>

对于如何在表格中显示每家公司的数据的任何想法,我将不胜感激。我的方法是向我展示每家公司的空桌子。我应该在 JSP 页面中使用某种脚本还是有其他方法。我是 JSP 和 Spring MVC 的新手,任何想法都将不胜感激。

【问题讨论】:

标签: spring-mvc jsp


【解决方案1】:

几年前我也遇到过类似的问题,然后就这样解决了:

// In my controller
mav.addObject("order", order);

// In my jsp
<c:forEach items="${order.articles}" var="article">
...
</c:forEach>

不起作用。但后来我尝试了这个

// In my controller
mav.addObject("articles", order.getOrderArticles());

// In my jsp
<c:forEach items="${articles}" var="article">

它按预期工作。如您所见,我将文章列表添加为模型中的另一个对象。然后就可以在jsp中遍历这个对象了。

【讨论】:

  • 你是在jsp中只使用了一个循环“文章”还是两个循环(一个用于“订单”,另一个用于“文章”。提前致谢
  • 在那种情况下,我只循环浏览了我的文章。
  • 好的,你是如何显示订单的(比如订单名称/订单号)。
  • 使用 ${order.name} 等和 ${articles.artnum} 什么的都没有问题。唯一不起作用的是直接迭代订单中的集合。
猜你喜欢
  • 2012-02-28
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多