宁波实习Day4:复习、修改与开发项目

SSM框架的搭建之前已经做过了,不记得可以看之前的宁波实训Day3:SSM框架

修改

在网页中修改用户的信息,并返回原界面。
修改之前要先获取用户的信息,让使用者知道自己在修改什么,所以要先创建根据用户id返回用户的信息,显示到修改界面上
在这里插入图片描述
那么首先要建立findById方法再建立update方法。跟之前一样编写Dao层-》service层-》controller层mapper:

 <select id="findUserById" parameterType="Integer" resultType="com.gn.bean.UserInfo">
        select * from tb_user where id = #{id}
    </select>

 <update id="updateUserById" parameterType="com.gn.bean.UserInfo">
        update tb_user set tb_user.username = #{username},tb_user.password = #{password} where tb_user.id = #{id}
    </update>

controller:

    @RequestMapping("/findUserById.do")
    public ModelAndView findUserById(int id)
    {
        UserInfo userInfo = userInfoService.findUserById(id);
        System.out.println("ID:"+id);
        ModelAndView mv = new ModelAndView();
        mv.addObject("userInfo",userInfo);
        mv.setViewName("user-update");
        return mv;
    }

    @RequestMapping("/updateUserById")
    public String updateUserById(UserInfo userInfo)
    {
        userInfoService.updateUserById(userInfo);
        return "redirect:findAll.do";	//重新加载到初始页面
    }

jsp:

<form action="${pageContext.request.contextPath}/user/updateUserById.do?id=${userInfo.id}">
<!--其他的省略了,这里只是要注意传参-->

其他知识

自己查的一些知识:

关于c标签

c标签为“核心标签”
核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
标签 描述
<c:out> 用于在JSP中显示数据,就像<%= … >
<c:set> 用于保存数据
<c:remove> 用于删除数据
<c:catch> 用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if> 与我们在一般程序中用的if一样
<c:choose> 本身只当做<c:when>和<c:otherwise>的父标签
<c:when> <c:choose>的子标签,用来判断条件是否成立
<c:otherwise> <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import> 检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach> 基础迭代标签,接受多种集合类型
<c:forTokens> 根据指定的分隔符来分隔内容并迭代输出
<c:param> 用来给包含或重定向的页面传递参数
<c:redirect> 重定向至一个新的URL.
<c:url> 使用可选的查询参数来创造一个URL

${}与#{}运算符

${}为jsp的el表达式使用表达式语言可以方便的访问对象中的属性、提交的参数以及进行各种数学运算。使用表达式语言,如果输入的内容为空,则会自动使用空字符串””代替。表达式语言的使用方法为${属性名称},{}中支持算数运算、自动的类型转换和逻辑运算。

#{}为myBatis中的占位符,与jdbc中的?类似。

今日总结

今天重新复习了一下ssm框架的搭建过程,同时完成了系统的修改功能,虽然我在之前的系统中已经提前完成了增删改查的所有功能,但是仍可以发现部分细节都不同。首先我的update功能是没有先用select获取用户信息的,我直接使用了请求时带参数的方法,而老师则是通过查找来传递信息,再进行修改,这样老师的方法更好,因为这个id查询的方法之后可以复用;其次老师返回初始页面使用的是String返回类型,而我使用的是在ModelAndView中设置redirect返回初始页面,理论上这两种方法都差不多,但是返回String的方法更简单也更节省资源。此外,我们实训期间的小组项目正式开始了,我今天独立地创建了整个系统的数据库,数据表包括有:
用户
一体机
二手机
硬件
商品评论
订单
反馈
论坛主题
论坛回复

在询问个组员意见,包括各个属性的命名方式以及数据如何分表,并结合我们的模块设计后,我初步确定了我们在之后的系统开发中需要的数据及其结构,算是为整个系统奠定了基石。明天我们将开始搭建自己系统的ssm框架并开始寻找前端模板。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值