2019年7月15日
用户管理系统模板搭建SSM
搭建过程和实习DAY3大同小异,这里不再赘述。
完成查询和更新
今天用的jsp主要有以下两个,而且webapp下的文件也与之前有所不同。user-list是用于查全部用户
另外的是用来更新用户信息。
这次的项目把实体类中的原User改为UserInfo。
还是在user-list中把查询结果显示出来,还是用html中的c标签。
上面还涉及到index.jsp首页中点击”查询用户“后向controller层的UserController发出请求,等待响应等一系列过程,因为在DAY3有提到,所以在此不再絮叨。
findUserById
考虑到更新用户功能没有返回值(不设置是否成功判断值),有传值,而且首先从页面中点击某一个用户的“更新”按钮时,要把对应的UserInfo的对象的id传递给controller层,再通过框架响应返回一个UserInfo的对象给页面。
controller层
@RequestMapping("/findUserById.do")
public ModelAndView findUserById(int id){ //页面传入的id参数在这里同名即可
UserInfo userInfo = userService.findUserById(id);
ModelAndView mv = new ModelAndView();
mv.addObject("userInfo",userInfo);
mv.setViewName("user-update");
return mv;
}
之后需要完善service层中的接口和实现的findUserById方法,dao层中的findUserById的方法。
//UserServiceImpl
@Override
public UserInfo findUserById(int id){
return userDao.findUserById(id);
}
Mapper中的sql语句配置:(parameterType:传入参数类型;resultType:返回(传回)参数类型)
<!--更新前的查询-->
<select id="findUserById" parameterType="java.lang.Integer" resultType="com.zhongruan.bean.UserInfo">
select * from tb_user where id=#{id}
</select>
updUserById
因为在controller层中ModelAndView对象是打开user-update.jsp页面的,所以在该页面的表单提交中设置向控制层的请求。
form的action属性中要注意需要传出userInfo对象的id,我理解的这样框架才能把页面表单中的数据(username,password)写入userInfo对象中并传到controller层中的接受请求的方法中。
<form action="${pageContext.request.contextPath}/user/updUserById.do?id=${userInfo.id}"
method="post">
<!-- 正文区域 -->
<section class="content"> <!--产品信息-->
<div class="panel panel-default">
<div class="panel-heading">用户信息</div>
<div class="row data-type">
<div class="col-md-2 title">id</div>
<div class="col-md-4 data">
<input type="text" class="form-control" name="id"
placeholder="id" value="${userInfo.id}" disabled>
</div>
<div class="col-md-2 title">用户名称</div>
<div class="col-md-4 data">
<input type="text" class="form-control" name="username"
placeholder="用户名称" value="${userInfo.username}">
</div>
<div class="col-md-2 title">密码</div>
<div class="col-md-4 data">
<input type="password" class="form-control" name="password"
placeholder="密码" value="${userInfo.password}">
</div>
</div>
</div>
<!--订单信息/--> <!--工具栏-->
<div class="box-tools text-center">
<button type="submit" class="btn bg-maroon">保存</button>
<button type="button" class="btn bg-default"
onclick="history.back(-1);">返回</button>
</div>
<!--工具栏/--> </section>
<!-- 正文区域 /-->
</form>
controller层中处理页面请求:
@RequestMapping("/updUserById.do")
public String updUserById(UserInfo userInfo){
userService.updUserById(userInfo);
return "redirect:findAll.do";
}
之后需要完善service层中的接口和实现的updUserById方法,dao层中的updUserById的方法。这里的方法是没有返回值,有传值userInfo。
Mapper文件sql语句配置:
<update id="updUserById" parameterType="com.zhongruan.bean.UserInfo">
update tb_user set username=#{username},password=#{password} where id=#{id}
</update>
之后就可以跑一下看看了。