1. 先上项目结构图,其中config包下的代码文件参见前一篇博客 http://www.cnblogs.com/njust-ycc/p/6123505.html
引包:
2. 主要代码
(1)User类
package web.entity; /** *@author 作者 Yu chenchen *@version 创建时间:2016年12月2日 下午4:53:00 *类说明: */ /** * @author YU * */ public class User { public String name; public String password; public String date; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } }
(2)UserInter接口
package web.inter; import java.util.List; import web.entity.User; /** *@author 作者 Yu chenchen *@version 创建时间:2016年12月2日 下午4:54:45 *类说明: */ public interface UserInter { //获取用户信息接口 public List<User> getUserInfo(); }
(3)UserImp类,实现UserInter接口
package web.imp; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Component; import web.entity.User; import web.inter.UserInter; import web.utils.DateUtil; /** *@author 作者 Yu chenchen *@version 创建时间:2016年12月2日 下午4:56:37 *类说明: */ @Component public class UserImp implements UserInter { //模拟从数据库中获取数据 @Override public List<User> getUserInfo() { List<User> list=new ArrayList<User>(); for(int i=0;i<20;i++) { User user=new User(); user.setName("ycc_"+i); user.setPassword("123_"+i); user.setDate(DateUtil.getCurrentTime()); list.add(user); } return list; } }
(4)UserController控制器
package web.controller; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import static org.springframework.web.bind.annotation.RequestMethod.*; import web.inter.UserInter; /** *@author 作者 Yu chenchen *@version 创建时间:2016年12月2日 下午5:06:20 *类说明: */ @Controller @RequestMapping("/user") public class UserController { public UserInter userInter; //自动注入userInter接口实例 @Autowired public UserController(UserInter userInter) { this.userInter = userInter; } //使用Spring的Model @RequestMapping(value="/userInfo",method=GET) public String showUserInfo(Model model){ model.addAttribute("userList",userInter.getUserInfo()); return "userInfo";//返回视图名称 } //使用java.util.Map类型 @RequestMapping(value="/userInfo2",method=GET) public String showUserInfo2(Map model){ model.put("userList", userInter.getUserInfo()); return "userInfo";//返回视图名称 } }
Model和Map其实都是以键值对的形式存储对象,这里的存储的userList将会传到前台页面。
(5)userInfo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!-- 屏蔽tomcat 自带的 EL表达式 --> <%@ page isELIgnored="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户列表</title> </head> <body> <table cellspacing="10px" cellpadding="10px" align="center" style="background-color: silver;"> <c:forEach items="${userList}" var="user"> <tr><td><c:out value="${user.name}"/></td><td><c:out value="${user.password}"/></td><td><c:out value="${user.date}"/></td></tr> </c:forEach> </table> </body> </html>
启用JSTL:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
这里注意要屏蔽tomcat自带的EL表达式,否则JSTL不起作用
3. 测试