SpringMVC系列教程——07控制器页面显示专题
本章我们将以案例的形式为大家演示。
上一篇:SpringMVC系列教程——06控制器接收表单
下一篇:SpringMVC系列教程——08URL模板映射讲解
本节我们要用到jstl表达式,需要继续导入下面这个包。
链接:https://pan.baidu.com/s/1CWDPrln1ONJRdBit2vPw4w
提取码:njp6
首先我们在UserController
类加入下面方法:
@RequestMapping("list")
public String list(Model model){
List<User> list = new ArrayList<User>();
User user1 = new User();
user1.setName("jack");
user1.setBirthday(new Date().toString());
user1.setGender("男");
user1.setPassword("123456");
list.add(user1);
User user2 = new User();
user2.setName("rose");
user2.setBirthday(new Date().toString());
user2.setGender("女");
user2.setPassword("123456");
list.add(user2);
User user3 = new User();
user3.setName("tom");
user3.setBirthday(new Date().toString());
user3.setGender("男");
user3.setPassword("123456");
list.add(user3);
model.addAttribute("list",list);
return "user/UserList";
}
UserList.jsp的内容如下
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2020/7/29
Time: 14:05
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
<tr align="center">
<td>姓名</td>
<td>密码</td>
<td>性别</td>
<td>生日</td>
</tr>
<c:forEach items="${list}" var="user">
<tr align="center">
<td>${user.name}</td>
<td>${user.password}</td>
<td>${user.gender}</td>
<td>${user.birthday}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
下面我们需要添加一项修改功能。
首先我们需要在UserController
里面添加一个全局变量List<User> lists
;
同时list()
方法添加下面用于保存数据。
UserList.jsp
里面添加下面内容:
接下来我们再次访问得到下面页面:
我们在UserController
类加入下面方法:
@RequestMapping("edit")
public String edit(String name,Model model){
User user=null;
for(int i=0;i<lists.size();i++){
if(lists.get(i).getName().equals(name)){
user = lists.get(i);
break;
}
}
model.addAttribute("user",user);
return "user/addUser";
}
addUser.jsp
修改如下:
我们在UserController
类加入下面方法:
@RequestMapping("update")
public String update(User user,Model model){
for(int i=0;i<lists.size();i++){
if(lists.get(i).getName().equals(user.getName())){
lists.set(i,user);
break;
}
}
model.addAttribute("list",lists);
return "user/UserList";
}
注意上面各个方法的Model对象不是同一个,而是每次访问该方法新建的一个。
下面我们来演示一下效果:
讲到这里我们会发现我们会发现,就是比如我们访问localhost:8080/user/list.do
,而我们的list()
方法是返回了我们的user/addUser
,但是最后浏览器路径还是localhost:8080/user/list.do
,而非localhost:8080/user/addUser
,这点需要注意一下。
上一篇:SpringMVC系列教程——06控制器接收表单
下一篇:SpringMVC系列教程——08URL模板映射讲解