商品修改功能的开发(从后往前开发)
商品开发之前,首先需要搞清需求
操作流程
1.先进入商品的查询界面
2.点击修改连接,进入商品的修改界面,页面汇总显示要修改的商品信息(从数据库查询,根据商品id)
3.在商品的修改界面修改商品信息,点击提交
1.开发mapper
mapper接口:根据id查询商品
根据id更新items表数据
不用开发,使用逆向工程生成的代码,mapper接口和mapper.xml文件中已有根据id查询和更新的方法
2.开发service
service接口的功能是根据商品id获得商品信息
在ItemService接口中声明根据id查询商品信息,和根据id修改商品信息的方法,然后在ItemServiceImpl方法中实现他们的具体实现
修改商品信息
在ItemServiceImpl实现Service接口的实现类中,需要调用mapper,所以在ItemServiceImpl中注入ItemsMapper
注意:根据商品id获得商品信息返回的是商品信息的扩展类itemsCustom。 通过调用mapper方法获得商品信息items,中间对商品信息进行业务处理例如根据商品实际盘点是否过期,就可以把是否过期保存在扩展类中,并且通过BeanUitls的copyProperties方法可以将items商品信息拷贝到商品信息扩展itemsCustom中。然后方法
注意:在实际开发中,更新商品信息时,需要进行业务校验,通常在service接口对关键参数进行校验。例如校验id是否为空,如果为空抛出异常
3.开发Controller(Handler)(会讲解springmvc的特性)
Controller需要提供两个方法:商品信息修改页面显示方法
商品信息修改的提交方法
在商品信息修改提交方法中,调用service更新商品信息,页面需要将商品信息传到此方法,在以后博客中会介绍参数如何绑定。这里先直接返回一个修改成功的界面
jsp界面新增修改链接
修改商品信息的jsp
@RequestMapping注解
定义Controller对应的URL,进行处理器映射使用
在@Controller注解下面,加上@RequestMapping注解,为了对url进行分类管理,可以在这里定义根路径,最终访问url是根路径+子路径
比如:商品列表:/items/queryItems,action
@RequestMapping(value="/editItems".method={RequestMethod.POST,RequestMethod.GET})
Controller方法的返回值
1.返回ModelAndView
注意:返回ModelAndView需要再方法结束,定义ModelAndView,分别对Model 和View进行设置
2.返回String
如果Controller返回String,表示返回逻辑视图名
注意:Model通过在方法中定义形参Model进行指定。代码通过model..addAttribut("itemsCustom“,itemsCustom);
2,redirect重定向
商品修改后,重定向到商品查询列表
redirect特点:Url中地址栏会变化,修改提交的request的数据,无法传到重定向的地址中,因为重定向后重新进行request(request无法共享)类似于servlet中重定向特点
3.什么也不返回
注意:如果再项目中需要响应JSON数据,可以采用void方法开发
学习交流QQ:2460425648