快速上手ssm项目
Posted zbb2161228
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速上手ssm项目相关的知识,希望对你有一定的参考价值。
quick_ssm
写在前面:
1.项目代码及实现思路来自nomico271
2.本项目适宜人群为刚刚学完SSM框架需要练手或对SSM开发感兴趣的童鞋
3.要求明白如何进行dao、service、controller的开发
一步步带你学会如何快速搭建ssm框架及项目的避坑
一.搭建SSM框架
打开IDEA,使用Maven创建一个webapp项目
PS:创建项目名称确认为maven-archetype-webapp
- 在pom.xml引入所需依赖
- 在properties内使用EL表达式${spring.version}进行版本的统一管理
- 使用了tomcat的插件
- 创建数据库表
tbl_emp可参照Employee.java,tbl_dept可参照Department.java
- 配置xml及相关配置
- applicationContext.xml
- SpringMVC.xml
- SqlMapConfig.xml
- web.xml
- jbbc.properties
log4j.properties
使用jbdc.properties进行数据库连接属性的统一管理
log4j.properties进行日志管理
- 创建表对应实体类
- Employee
- Department
- 测试控制器方法
- TestController
- success.jsp
二、编写DAO层
1.mybatis配置文件
- SqlMapConfig.xml
- 由于mapper.java和mapper.xml不在一个包路径下,需在SqlMapConfig.xml文件中配置xml文件的资源路径
2.mapper代理开发 此处使用xml写sql,注意xml文件需与mapper.java命名相同
mapper.xml文件的namespace以接口的位置为准(精确到接口的类名)
使用resultMap时,多表间的关系需要通过bean包下类的getter方法进行映射
- 配置applicationContext.xml文件
- 通过MapperScannerConfigure自动扫描加载mapper
- 测试一个查询接口方法
- pass!
排坑:报错Parameter 'offset' not found. Available parameters are [arg1, arg0, param1,param2]
问题原因:找不到offset,limit
解决方案:将mapper.xml中占位符属性改为arg0,arg1后解决
三、搭建前端页面(搬运为主)
- 主页面的静态资源搭建
- head.jsp --> 导航栏
- foot.jsp --> 底部栏
- leftsidebar.jsp --> 左侧导航
排坑:主页轮播图不加载,查看为找不到资源(404)
问题原因:未加载是由于dispatcherServlet拦截了所有的请求,包括静态资源
解决方案:
1. 在SpringMVC.xml中配置<mvc:default-servlet-handler/>
2. 在web.xml中配置
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/img/*</url-pattern>
</servlet-mapping>
PS:在web.xml中的配置需在dispatcherServlet前
- 公共页面的jsp实现及分层
- 新建main.jsp,head.jsp,foot.jsp,leftsidebar.jsp使用
<%@include file="/WEB-INF/jsp/common/head.jsp"%>
- 员工操作/部门操作的静态页面
基本框架相同,需注意的是,将main.jsp的轮播图改为表格展示
主要是配置好JSTL表达式,注意jsp内的属性与接口属性的对应关系,如JSTL表达式不生效,在jsp页面添加
<%@page isELIgnored="false" %>
四、基本的CRUD操作实现
实现过程:数据库查询 --> 放在SpringMVC的ModelAndView,前端通过JSTL解析获取到的结果集
- 编写service类
- service类实现mapper的方法,需引入mapper的bean,这里使用@Autowired
- 编写json类
- 提供错误状态、提示信息、封装数据
- 编写controller类
- 在controller类中调用service实现类的方法,引入service实现类的bean,使用@Autowired
排坑:在controller内使用service实现类的bean编译出错
问题原因:spring找不到所需的bean对象
解决方案:需要在web.xml中配置启动Spring的容器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</context-param>
- 在jsp内提取服务端返回的数据
- 基本完成!
排坑:启动服务器时报错nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/mybatis/SqlMapConfig.xml]
问题原因:emmm
解决方案:在applicationContext.xml内将/mybatis/SqlMapConfig.xml的类路径前加上classpath:后恢复
五、基本代码完成后的前端测试
排坑:使用新增方法接口500
问题原因:前端页面接收的字段名称与接口定义的字段名称不匹配
解决方案:由于我自己前端页面大部分搬运的,所以这里调试了很久……已经统一了所有需要改动地方的字段名称为数据库字段名称
排坑:使用新增方法页面405,提示不支持GET方法
问题原因:在ajax内的TYPE设置与controller内不一致
解决方案:本项目使用基于rest风格的URI,需对GET、POST、PUT、DELETE在前后端进行统一
六、留下的坑
- 顶部导航栏的内容待完善
<<<<<<< HEAD 登录页待制作
登录页待制作- 在进入员工信息页或部门信息页后,通过左侧导航栏进行交叉跳转,url错误导致404
- 部门信息添加后页面不自动刷新的问题
- 右上角的账户管理待完善
- 待使用mybatis的逆向工程插件自动生成实体类
<<<<<<< HEAD 写了这么多真的有人看吗。。。
事务控制
以上是关于快速上手ssm项目的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot快速上手——《二》:SpringBoot集成SSM,实现增删改查功能
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)二(页面搭建)
13.2 MyBatis Generator 快速入门(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》