当前位置: 代码迷 >> Java Web开发 >> springMVC 在分层,视图层的数据一般如何输出
  详细解决方案

springMVC 在分层,视图层的数据一般如何输出

热度:31   发布时间:2016-04-16 22:01:44.0
springMVC 在分层,视图层的数据一般怎么输出
如javaBean            AAA                       BBB
                                id                             id
                                userName            book
                                                               A_id


AAA有10条数据,      对象BBB中的数据是通过对象AAA查找出来的

页面显示要求 
          用户名                                        书名
          user1                                    book1   book2   book3
          user3                                   book1   book2   book3
          user2                                   book1   book2   book3

如何 将页面所需要的数据,重新放到一个新对象里面,
将这个对象传到页面(repos)
然后直接用EL表达式输出
如这样
<c:forEach items="${repos}" var="repo" varStatus="step">
          ${repo.userName}  
       
<c:forEach>
book的数据如何输出





------解决方案--------------------
可以定义一个集合类似List<Map<AAA,List<BBB>>这样,后台通过查询组合成这样的集合,页面用EL表达式通过foreach循环就可以显示出来;
最外层的List是表示要显示的AAA集合,List中的Map是表示AAA和AAA对应的BBB集合,这里要注意重写一下AAA的hash函数和equal函数,使AAA可以作为Map的key
------解决方案--------------------
可能要对查询出来的数据再次处理下
AAA中添加一个List<Book> books

循环结果集,根据用户查询出他的book添加到books中

页面上就用 ${repo.bookName}  
AAA中添加一个方法:
public String getBookName(){
for(..){
累加books中的bookName
}
return bookName;
}

------解决方案--------------------
引用:
可能要对查询出来的数据再次处理下
AAA中添加一个List<Book> books

循环结果集,根据用户查询出他的book添加到books中

页面上就用 ${repo.bookName}  
AAA中添加一个方法:
public String getBookName(){
for(..){
累加books中的bookName
}
return bookName;
}

如果记录特别多,你可以考虑分页查询,降低内存消耗,如果数据不是特别多,这是一种简单有效的方法
  相关解决方案