0

我必须能够将数据存储在一个新对象中,这是我从一个复杂对象中获取的,其中每个项目都保存在一个列表中。

层次结构如下: 1) libraryId (Library) 2) bookId (book) 3) pageId (page) 4) wordId (word)

  • 图书馆可以有零到多本书。每本书都是唯一的,可以有零到多个 pageId,如果有一个页面,每个 pageId 可以有零到多个 wordId。

我有数据,但我需要循环遍历每个项目并放入一个对象 - ArrayList 或类似对象 - 所以我可以传递给另一个需要一个列表的类。在下一个类中,数据将呈现在 JSP 数据表中。

我有以下分类来做到这一点:

class Library{ 
  int libraryId; 
  ArrayList<Book> books; 
} 

class Book { 
  int bookId; 
  ArrayList<Page> pages; 
} 

class Page { 
  int pageId; 
  ArrayList<Word> words; 
} 

class Word { 
  int wordId; 
} 

我已经开始这样做了:

Book book = new Book(); // create Book object 
ArrayList<Page> pages = new ArrayList<Page>; 
pages.add(new Page()); // add first page 
pages.add(new Page()); // add next page 
book.setPages(pages); // set reference to pages for book

我已经尝试过了。我不确定它是否正常工作。根据上面的答案,我就是这样做的。我上相同的课程等。

我有以下数据示例:

1 本书,有 1 页,该页有 8 个单词。我还有一本书,有 2 页,每页 6 个字。我希望这是有道理的。

基于上面的例子,我该如何编写这段代码,然后我又如何检索数据呢?目的是我将其传递给 JSP,然后使用 JSTL 将其检索到表中。对此的任何帮助,以检索此数据也将有所帮助。

4

2 回答 2

1

这实际上取决于您的框架。你是一个贪婪的惩罚者并使用直接的 JSP,如果是这样,看看 <jsp:useBean> 或使用一个脚本(呃......)来填充“书”变量。

否则,它将非常依赖于框架。像春天这样的东西是:

@Controller
public class MyController {
  @RequestMapping(...)
  public ModelAndView processRequest(HttpServletRequest request, 
        HttpServletResponse response) {
      Map<String, Object> model = new HashMap<String, Object>();
      Book book = ...;
      model.put("book", book);
      return new ModelAndView("viewbook", model);
  }
}
于 2012-06-21T23:14:46.477 回答
1

你可以这样做

<c:forEach var="book" items="${bookList}">
                        <tr>                        
                            <td>${book.id}</td>
                            <td>${book.name}</td>
                        </tr>
                        <c:forEach var="page" items="${book.pages}">
                            <tr>                        
                                <td>${page.id}</td>
                                <td>${page.name}</td>
                            </tr>
                        </c:forEach>                    
                    </c:forEach>
于 2012-06-25T08:22:24.047 回答