您的位置:首页 > 编程语言 > Java开发

使用spring mvc前台获取后台返回的List

2016-06-07 22:27 489 查看
在web的开发中,我们经常会用到在欢迎页面加载的同时,也会查询后台的数据将其显示在页面上,这里有一个办法我们可以尝试一下。

假如我想在一进入欢迎页面的时候就显示后台数据库中事先存放好的数据,那么我们可以这样做:

将action写在web.xml中:

<welcome-file-list>
<welcome-file>/categories/queryCates.do</welcome-file>
</welcome-file-list>


这里不要直接写欢迎页面,而将其移至控制器的返回值中。

在控制器中添加action对应的方法:

package com.pro.controller;

import com.pro.pojo.Category;
import com.pro.service.ICategoryService;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;

@Controller
@RequestMapping("/categories")
@SessionAttributes("catesArray")
public class CategoryController {

@Resource
private ICategoryService cateService;

@RequestMapping("/queryCates")
public String queryCatesIndex(HttpServletRequest req,HttpServletResponse rep,ModelMap model){
List<Category> catesArray  = this.cateService.getAllCategories();
model.addAttribute("catesArray",catesArray);
if(model.containsAttribute("catesArray")){
return "index";
}
return "error";
}
}

说明:注解@SessionAttributes("catesArray")是为了将catesArray这个list放入session中,以便在其他任何页面中可以随时访问这个list,这个session的生命周期可以根据需要自己设置。

接下来就是在页面中遍历这个list了:



<c:forEach items="${sessionScope.catesArray}" var="cates">
<li class="subMenu open"><a class="FirstMenu">${cates.cateName}</a>
<ul>
<li><a class="active" href="products.jsp"><i class="icon-chevron-right"></i></a></li>
<li><a href="products.jsp"><i class="icon-chevron-right"></i>Computers, Tablets & laptop (30)</a></li>
<li><a href="products.jsp"><i class="icon-chevron-right"></i>Mobile Phone (80)</a></li>
<li><a href="products.jsp"><i class="icon-chevron-right"></i>Sound & Vision (15)</a></li>
</ul>

</li>
</c:forEach>


说明:使用${}获取变量时,如果不指定作用域,就会默认在Page范围中找,如果找不到,再依次从Request、Session、Application范围中找,如果全部没找到,就会返回null,页面不显示任何东西。

属性范围(jstl名称)
EL中的名称
Page
PageScope
Request
RequestScope
Session
SessionScope
Application
ApplicationScope


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc