【实训】SSM鲜花商城开发日志

发布于 2022-11-30  143 次阅读


12.2 12:21

受疫情影响,实训暂停一段时间了,除了偶尔改一下前端,好像没干啥

12.3 16:42

前端页面基本少做好了,一个首页,一个登录,一个注册,一个商品详情,一个后台界面

实训老师好严,虽然不是负责我们班的(两个班同时上实训,负责老师轮流轮班)

那个老师说做展示类商品类的最起码要13个界面,要美观

功能类系统要人性化,功能完善。

我后悔选鲜花商场了.....

12.4 22:01

我特么,学校发通知受疫情影响,19号之前全部离校,受影响的考试延期到下学期

然后我们操作系统本来在19号考试,按道理应该延期到下学期

但是我们老师选择提前,我裂开

这实训跟考试全撞一起了

这下又得熬夜通宵了。

12.7 1:17

点击购买商品的时候,库存减少,库存可以输入。

获取文本框内的值,然后传到后端,同时获取当前页面商品的id值,一起传到后台,

利用商品id和文本框内值就能用sql语句删除。

17:30

草,我发现一件事,库存可以减少了,但是减少意味着有人购买了,应该要增加相应的下单的订单记录

思路是:

首先要登录,登录后之前用session缓存了登录的用户数据

利用session缓存的数据可以拿到当前登录的用户信息

那么是谁购买的已经知道了。

再利用当前商品详情页的id,也能知道购买的餐品。

这样应该就能添加数据了。

12.8 00:40

做商品详情页时候有一个判断逻辑有问题

后端逻辑

 /*获取购买商品数量*/
       function num() {
            var shopnum =document.getElementById("num").value

           var i =${loginUser.type};
           if (i==1){
               var useraddress=prompt('请输入收货地址');
               if (useraddress){
                   /*把用户的信息传过去...*/
                   window.location='${pageContext.request.contextPath}/goshop?id=${commStocks.id}&shop='+shopnum+'&address='+useraddress;

               }else {
                   alert('请输入地址')
               }
           }else {
               alert("请先登陆账号");
           }

       }

原本按照正常思路走应该是

如果不登录,则无法获取到loginuser.type的值,这是一个在用户登录之后才会存在的临时参数(HttpSession session)所以没有值应该提示登录,如果登录且类型为普通用户则会提示输入地址

(因为最开始设计数据库表的时候没有设计好,而且用户注册的时候不需要填写地址)

而且后来思考了一下,如果每次收货地址不一样,那个还要去修改,所以干脆当场输入,入下图

但是实际的情况是,如果没有登录(游客状态下)虽然无法购买,但是原本的提示框也没有提示..

折腾了半天,没弄明白,心态有点崩 睡了

12.8 16:80

在获取用户信息后,用户可以选择修改,将修改后的数据传到后台,然后根据在修改数据库

但是英文数值都能拿到,所以应该是传数据的是时候问题

在web.xml的配置文件中加入防止乱码


        <!-- 避免中文乱码 -->
        <filter>
            <filter-name>characterEncodingFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
            <init-param>
                <param-name>forceEncoding</param-name>
                <param-value>true</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>characterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

然后重新发布

再去获取值的时候发现能成功拿到正确的值了

19:24

关于遍历后传值

由于展示的数据是遍历出来的,然后想在点击按钮后传相应的id出去,但是在因为是在循环内。

原本想法是像上面那样那样,点击后获取id然后把值传到后台,但是以为是遍历,所以点击事件后每次拿到的值都是最后一条数据的id

解决方法:

再点击事件onclick()中把对应的id传出去

然后在script中再接值并传出去