SSM框架训练 实现各个功能时遇到的常见问题

这篇具有很好参考价值的文章主要介绍了SSM框架训练 实现各个功能时遇到的常见问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

快速复制当前代码到下一行:ctrl+D

格式化代码(快速整理代码):ctril+alt+L

一步一步来,后续会不停添加功能。

先创建项目结构:搭建框架

(36条消息) SSM框架模板(高配:一次性配完所有需要的配置文件)_one day321的博客-CSDN博客

登录与注册 功能实现 的问题:

登录很简单,这里就不详述了。可以参考上一个博客的内容,里面有关登录的介绍。

主要看注册的问题:

第一个问题:没有进行 判断数据是否为空,就插入数据到数据库里面了,这个时候插入的数据都是null。

原因:通过logger.ingo("user")  。我们可以发现。原来我们的判断语句是:

if(user ==null)   。但是日志输出的user 是一个 po.user类型,里面各个数据存放的是null。但不是user为null。

修改:  改为user.getAccount() ==null

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

第二个问题:插入了三次

在插入语句里面,插入了三次。是因为,这个里面,使用了三次插入 (userDao.register(user)尽管 ) 

修改:将userDao.register语句只保存一个就可以了。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

第三个问题:从表单提交给Controller的数据。需要有model的属性指定。

在浏览器输入/register 的时候,它的modelAttribute是user。表示,它提交的表单,其中会有一个user的model属性。所以这里要像下面一样修改。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

第四个问题:从service层提交给view层的数据。也需要有相应的model属性指定

 像下面,service层返回给login.jsp。然后login.jsp存在modelAttribute("login")。所以这里必须也要指定login的model属性。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

第三个和第四个问题,分别是 从两个方向提交数据,如果缺少上述属性的指定,就会造成,浏览器500,并提示,找不到bean标签。

第五个问题:是有关数据库的属性指定。

比如,这里指定id 不能为空,所以。在Mapper.xml文件里面,需要首先对sql语句里面的id进行赋值,否则,就会报错。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

 比如这里,就必须先进行赋值null。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

第二个功能:实现 商品类型的展现 和商品类型的添加。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

第一个问题:404

商品类型和商品类型的添加都属于一个商品类型的表。  然后我在做的时候,把SQL语句放在了UserMapper.xml文件里面(UserMapper.xml 文件的映射是dao.userDao。)不符合我们属于商品类型的表。

修改:需要创建一个商品类型的Mapper.xml。需要创建 一个POJO类型的商品类型。在mybatis-config.xml文件里面添加 对商品类型的映射。

修改完后,就不会出现404的问题了。

第二个问题:代码层不建议多写。一个表对应一类代码层。比如:这次的商品类型。那么就写GoodsType。(dao层就是TypeGoodsDao、service层就是TypeService、controller层就是TypeController)

关于代码层,我一开始的作法是分了两个模块,一个添加,一个展示。但是书上要求是在同一个页面展示,最后越做越乱。直到我把代码层的代码全部删除,重新放在一个模块来思考,问题得到解决。

第三个问题:我想知道,数据是如何在这个里面进行传输和储存的。

小结自己的感悟:

1.Controller层 的方法参数要和 Service层 一一对应。

2.像SQL语句这些。若没有从view层传送数据过来,那么controller层的POJO类型始终为空,当然Service层也始终为空。例如:查询所有语句。没有view层传递数据。只需要在view层使用dao层的方法就能获取到数据。但POJO数据始终为空。

3.从view层传递数据过来了(view层数据绑定POJO的属性),那么POJO始终 有这么一条数据。也仅有这一条数据。

4.有一点需要重视,像多个功能放在同一个页面下,那么view层就会存在多个model属性。那么对应功能的方法也会有对应几个的model.add属性。

(并不是对应一个功能,那么在一个方法里面就只写一个model属性。因为最终返回的界面有多个model属性,那么尽管是一个功能的方法,它也要写上所有 和返回界面 里面有的所有model.add属性。否则,只写一个model属性,它最后返回到界面里面会因为发现不了其它model属性而导致报错。并提示,此bean未找到。)

第三个功能:实现商品类型的展现 和 删除。(在每一个类型后边加一个删除)

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

第一个问题:我发现,我好像不知道,怎么删除商品。(主要商品的删除,应该怎么把数据提交给控制器,然后由控制器进行删除)

删除商品的 sql语句我知道写:delete from goodstype where id = #{id} 

但是,这个id,应该怎么从view层获取过来。

解决:通过JavasScript 函数 提交id给控制器。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

 然后在下面编写: 通过使用函数的方法,提交id数据。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

在控制器有两种方式 可以获取到这个数据:

第一种,通过Integer 获取。(第一次浏览器输入/delete界面,此时没有点击删除,ID为null。)

第二种,通过 POJO 使用 goodsTypeDao方法使用Mapper.xml文件的SQL映射文件。使用这个方法之后,goodsType的存放的数据就发生改变了。

 SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

这里需要注意一下,就是,只通过第二种方式,删除数据可以吗?

答案是当然不行:

  因为我们在SQL映射语句是 通过where id = {#id} .

也就是,在Dao层,使用的是delet(Integer id) 的方式 进行删除数据。所以必须需要第一种方式获取传输过来的id .

比较:前面我们使用查询语句 ,插入语句 。它们的类型是POJO类型。

查询、插入的方式:它们是通过表单的形式和POJO的类型进行绑定的,所以只要提交action按钮。就会改变POJO的类型。这和我们使用删除的方式有点不一样。

这里我们点击删除的方式 是传入一个id的数据。然后传给Service层。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

总结:写到这个例子,我才差不多理解,在这些代码层里面,数据是如何进行数据的传输的。

例如:删除,是通过传递id编号。使用service层的映射。

           查询、添加 是通过 和POJO的绑定,当点击按钮,就改变POJO的数据,在传递给Service层,使用dao层的映射。

第二个问题:点击删除按钮,页面没有变化,但是数据库显示,数据已被删除。

SSM框架训练 实现各个功能时遇到的常见问题,IDEA 的使用教程以及SSM项目的搭建学习,数据库

总结:从《JavaEE 框架整合开发入门到实战》这本书开始学习。

到现在学习到第20章,最后一个电子商务平台的设计与实现。沿途碰见了许多困难,直到现在,或许我应该 转换思路学习了。这本书,不是很好。因为最后一个项目,在我看来,很多地方都没有解释清楚,比如,它们的数据是怎么传递的,以及怎么突然,一个界面就获得了另外一个数据。而且缺少很多数据和属性。

我只搞明白了,对应view层获得或者传入数据,都是通过一个model属性进行传递的。还有很多地方,我并没有搞明白。比如,在实现第三个功能,进行上传图片的操作的时候,我就碰到了困难。看书上的例子,我真的觉得有点莫名其妙。

最后只能实现一个简单的添加商品类,但是做不了上传这个界面。所以此书到此为止了。

当然,此书给我的收获还是很大的,我至少学会了SSM项目的基本搭建,以及学会使用IDEA这个应用。文章来源地址https://www.toymoban.com/news/detail-544166.html

到了这里,关于SSM框架训练 实现各个功能时遇到的常见问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包