快速上手ssm項目

quick_ssm

寫在前面:

項目地址:https://github.com/yyconstantine/quick_ssm,若是此博文對您有所幫助,還請點亮小星星~


1.項目代碼及實現思路來自nomico271
2.本項目適宜人羣爲剛剛學完SSM框架須要練手或對SSM開發感興趣的童鞋

3.要求明白如何進行dao、service、controller的開發前端

一步步帶你學會如何快速搭建ssm框架及項目的避坑java


一.搭建SSM框架

  1. 打開IDEA,使用Maven建立一個webapp項目git

    PS:建立項目名稱確認爲maven-archetype-webappgithub

  2. 在pom.xml引入所需依賴
  • 在properties內使用EL表達式${spring.version}進行版本的統一管理
  • 使用了tomcat的插件
  1. 建立數據庫表
tbl_emp可參照Employee.java,tbl_dept可參照Department.java
  1. 配置xml及相關配置
  • applicationContext.xml
  • SpringMVC.xml
  • SqlMapConfig.xml
  • web.xml
  • jbbc.properties
  • log4j.propertiesweb

    使用jbdc.properties進行數據庫鏈接屬性的統一管理

    log4j.properties進行日誌管理ajax

  1. 建立表對應實體類
  • Employee
  • Department
  1. 測試控制器方法
  • TestController
  • success.jsp

2、編寫DAO層

1.mybatis配置文件spring

  • SqlMapConfig.xml
  • 因爲mapper.java和mapper.xml不在一個包路徑下,需在SqlMapConfig.xml文件中配置xml文件的資源路徑
    2.mapper代理開發
  • 此處使用xml寫sql,注意xml文件需與mapper.java命名相同sql

    mapper.xml文件的namespace以接口的位置爲準(精確到接口的類名)

    使用resultMap時,多表間的關係須要經過bean包下類的getter方法進行映射
    數據庫

  1. 配置applicationContext.xml文件
  • 經過MapperScannerConfigure自動掃描加載mapper
  1. 測試一個查詢接口方法
  • pass!
排坑:報錯Parameter 'offset' not found. Available parameters are [arg1, arg0, param1,param2]
問題緣由:找不到offset,limit
解決方案:將mapper.xml中佔位符屬性改成arg0,arg1後解決

3、搭建前端頁面(搬運爲主)

  1. 主頁面的靜態資源搭建
  • 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前json

  1. 公共頁面的jsp實現及分層
  • 新建main.jsp,head.jsp,foot.jsp,leftsidebar.jsp使用
<%@include file="/WEB-INF/jsp/common/head.jsp"%>
  1. 員工操做/部門操做的靜態頁面
  • 基本框架相同,需注意的是,將main.jsp的輪播圖改成表格展現

    主要是配置好JSTL表達式,注意jsp內的屬性與接口屬性的對應關係,如JSTL表達式不生效,在jsp頁面添加

<%@page isELIgnored="false" %>

4、基本的CRUD操做實現

實現過程:數據庫查詢 --> 放在SpringMVC的ModelAndView,前端經過JSTL解析獲取到的結果集

  1. 編寫service類
  • service類實現mapper的方法,需引入mapper的bean,這裏使用@Autowired
  1. 編寫json類
  • 提供錯誤狀態、提示信息、封裝數據
  1. 編寫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>
  1. 在jsp內提取服務端返回的數據
  • 基本完成!
排坑:啓動服務器時報錯nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/mybatis/SqlMapConfig.xml]
問題緣由:emmm
解決方案:在applicationContext.xml內將/mybatis/SqlMapConfig.xml的類路徑前加上classpath:後恢復

5、基本代碼完成後的前端測試

排坑:使用新增方法接口500
問題緣由:前端頁面接收的字段名稱與接口定義的字段名稱不匹配
解決方案:因爲我本身前端頁面大部分搬運的,因此這裏調試了好久……已經統一了全部須要改動地方的字段名稱爲數據庫字段名稱

排坑:使用新增方法頁面405,提示不支持GET方法
問題緣由:在ajax內的TYPE設置與controller內不一致
解決方案:本項目使用基於rest風格的URI,需對GET、POST、PUT、DELETE在先後端進行統一

6、留下的坑

  1. 頂部導航欄的內容待完善
    <<<<<<< HEAD
  2. 登陸頁待制做

  3. 登陸頁待制做
  4. 在進入員工信息頁或部門信息頁後,經過左側導航欄進行交叉跳轉,url錯誤致使404
  5. 部門信息添加後頁面不自動刷新的問題
  6. 右上角的帳戶管理待完善
  7. 待使用mybatis的逆向工程插件自動生成實體類
    <<<<<<< HEAD
  8. 寫了這麼多真的有人看嗎。。。

  9. 事務控制
相關文章
相關標籤/搜索