在控制器中创建复杂列表的推荐方法

时间:2014-02-11 17:38:28

标签: java servlets model-view-controller controller

我需要表示复杂的列表,以便在我的Web应用程序(Tomcat 7)中显示 - 嵌套在列表中的列表。

e.g。

Project
  Offer
    Skill
    Skill
  Offer
    Skill
Project
  Offer
    Skill
    Skill
  Offer
    Skill

我通过创建一个包含对象和对象列表的类来解决它。但由于此结构对于此页面而言是独一无二的,因此解决该问题似乎需要做很多工作。

如果这样做,会有更通用的方法吗?例如使用MAP?什么是普遍接受的模式?我知道在其他语言(如PHP)中工作较少。你只是填充其他东西。只是努力提高效率。

顺便说一句:是否有一个资源你会推荐我阅读处理这样的设计问题?网上的所有东西都比较简单。我宁愿只是按照公认的模式而不必诉诸SO ......

    List<Project> projects = projectDao.getProjectsByBusid(business.getId());
    req.setAttribute("projects", projects);

    List<ProjectOffers> polist = new ArrayList<ProjectOffers>();
    for(Project project : projects){
        List<Offer> offers = offerDao.getOffersByProjId(project.getId());
        ProjectOffers po = new ProjectOffers();
        po.setProject(project);
        po.setOffers(offers);
        polist.add(po);         
    }
    req.setAttribute("polist", polist);

使用班级中的班级

public class ProjectOffers {
    Project project;
    List<Offer> offers;

    public Project getProject() {
        return project;
    }
    public void setProject(Project project) {
        this.project = project;
    }
    public List<Offer> getOffers() {
        return offers;
    }
    public void setOffers(List<Offer> offers) {
        this.offers = offers;
    }

}

然后在jsp中

${po.name}
<c:forEach var="o" items="${po.offers}">
    ${o.name}
    <c:forEach var="n" items="${o.skills}">
        ${o.name}
    </c:forEach>
</c:forEach>

0 个答案:

没有答案