做企鵝號(hào)的視頻素材網(wǎng)站獨(dú)立站網(wǎng)站
SpringMVC
架構(gòu)
?spring的前端控制器是DispatcherServlet
模板引擎Thymeleaf
這個(gè)還不知道干嘛的
mvc演示
get請(qǐng)求
@RequestMapping:聲明訪問路徑和http方法get或set什么的
@ResponseBody:java對(duì)象轉(zhuǎn)為json格式的數(shù)據(jù),表示該方法的返回結(jié)果直接寫入 HTTP response body 中
@RequestParam:get方法,url上面加的參數(shù)可以提供默認(rèn)值defaultValue或者是否一定需要required
@RequestParam注解的詳細(xì)介紹 - tomingto - 博客園 (cnblogs.com)
@PathVariable:路徑參數(shù),就是獲取再url中的參數(shù),比如/students/123,不加問號(hào)的那種
post請(qǐng)求
前端:
后后端:
參數(shù)中的名字與表單中的名字保持一致,就會(huì)自動(dòng)傳遞
?響應(yīng)html數(shù)據(jù)
前端:
后端:
ModelAndView
?Model,返回字符串類型
響應(yīng)json數(shù)據(jù)(異步請(qǐng)求)
異步請(qǐng)求:網(wǎng)頁不全部刷新,悄悄地訪問了服務(wù)器
Mybatis
使用mybatis,只用寫接口,不用寫實(shí)現(xiàn)類
SqlSessionFactory:用于創(chuàng)建SqlSession的工廠類
SqlSession:
主要是寫mapper接口層,操作數(shù)據(jù)庫,一個(gè)mapper接口層對(duì)應(yīng)一個(gè)xml文件,,這個(gè)xml文件放在resources目錄下的mapper文件夾里面。xml頭部要聲明作用在具體哪個(gè)mapper,用namespace來確定。在mapper接口層的所有方法都在xml中有對(duì)應(yīng)的標(biāo)簽來處理,是根據(jù)id來進(jìn)行識(shí)別的,resultType來確定返回類型,要select就<select>,操作的那個(gè)sql語句就是標(biāo)簽的名稱。參數(shù)就寫#{id}這個(gè)樣子,注意里面的一定是方法的參數(shù),一般肯定是駝峰命名。
@Param
<if>
開發(fā)社區(qū)首頁
Mapper層
帖子Mapper
Service層
帖子Service
?用戶Service,用來通過帖子userId查用戶信息
Cotroller層
list里面有多個(gè)discussPost對(duì)象
list里面是多個(gè)map對(duì)象
map對(duì)象里面裝的是一個(gè)discussPost對(duì)象和對(duì)應(yīng)的user對(duì)象
前端頁面
?
page
entity
controller
前端分頁
?整體的條件判斷:th:if = "${page.rows > 0}"
首頁(一直都會(huì)顯示):th:href = "@{${page.path}(current = 1)}"
末頁(一直都會(huì)顯示):th:href = "@{${page.path}(current = page.total)}"
上一頁:
如果是當(dāng)前頁是第一頁,就不能點(diǎn):th:class = "|page-item ${page.current == 1 'disabled':''}|"
上一頁的路徑:th:href = "@{${page.path}(current = ${page.current - 1})}"
下一頁:
如果是當(dāng)前頁是最后一頁,就不能點(diǎn):
th:class = "|page-item ${page.current == page.total?'disabled':''}|"
下一頁的路徑:th:href = "@{${page.path}(current = ${page.current + 1})}"
當(dāng)前頁:
如果這個(gè)頁碼是當(dāng)前頁,就激活:
th:class = "|page-item ${i == page.current ? 'active': ''}|"
一共顯示的頁數(shù):
th:each = "i:${#numbers.sequence(page.from, page.to)}"
下面顯示text:
th:text = "${i}"