实现用户的动态修改信息功能
思路分析
- 点击修改,获取要修改的用户id
- 我们需要新建一个 update.jsp先显示要修改的用户信息,让后让用户选择性修改
- 两个页面跳转我们需要servlet处理,所以要新建一个UpdateUserShow.java
实现update.jsp显示要修改的用户信息
这里就需要使用到C标签,C标签的灵活运用可以让jsp页面更加简洁明了
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!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>Insert title here</title>
</head>
<body>
<c:if test="${user != null}">
<form method="post" action="<%=request.getContextPath()%>/UpdateUser?id=${user.id}">
<table width="600" height="386" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td colspan="3" align="center"><span class="STYLE1">会员修改</span></td>
</tr>
<tr>
<td width="132" align="right">用户名:</td>
<td width="312"><label>
<input name="uname" type="text" id="uname" value="${user.uname}"/>
</label></td>
<td width="146"> </td>
</tr>
<tr>
<td align="right">密码:</td>
<td><label>
<input name="upwd" type="password" id="upwd" value="${user.upass}"/>
</label></td>
<td> </td>
</tr>
<tr>
<td align="right">性别:</td>
<td><label>
<c:set var="sex" value="" ></c:set>
<c:if test="${user.usex=='男' }">
<c:set var="sex" value="checked=checked"></c:set>
</c:if>
<input name="usex" type="radio" value="男" ${sex}/>
男
<c:set var="sex" value=""></c:set>
<c:if test="${user.usex=='女'}">
<c:set var="sex" value="checked=checked"></c:set>
</c:if>
<input type="radio" name="usex" value="女" ${sex}/>
女</label></td>
<td> </td>
</tr>
<tr>
<td align="right">角色:</td>
<c:set var="s1" value=""></c:set>
<c:set var="s2" value=""></c:set>
<c:set var="s3" value=""></c:set>
<c:choose>
<c:when test="${user.urole==1}">
<c:set var="s1" value="selected"></c:set>
</c:when>
<c:when test="${user.urole==2}">
<c:set var="s2" value="selected"></c:set>
</c:when>
<c:otherwise>
<c:set var="s3" value="selected"></c:set>
</c:otherwise>
</c:choose>
<td><label>
<select name="urole" id="urole">
<option value="0">全部</option>
<option value="1" ${s1}>会员</option>
<option value="2" ${s2}>高级会员</option>
<option value="3" ${s3}>钻石会员</option>
</select>
</label></td>
<td> </td>
</tr>
<tr>
<td colspan="3" align="center"><label>
<input type="submit" name="Submit" value="提交" />
<input type="reset" name="Submit2" value="重置" />
</label></td>
</tr>
</table>
</form>
</c:if>
</body>
</html>
实现Servlet转接功能
点击修改调用的servlrt层中的<a href='UpdateUserShow?uid="+user.getId()
通过用户id我们就可以获取全部信息
UpdateUserShow.java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import entity.User;
import service.IAddressService;
import service.impl.AddressServiceImpl;
@SuppressWarnings("serial")
@WebServlet(name="UpdateUserShow",urlPatterns="/UpdateUserShow")
public class UpdateUserShow extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
int id = Integer.parseInt(req.getParameter("uid"));
System.out.println(id);
IAddressService iaddser = new AddressServiceImpl();
User user = iaddser.findUserById(id);
req.setAttribute("user", user);
req.getRequestDispatcher("update.jsp").forward(req, resp);
}
}
页面跳转需要用到转发用来传递数据