์ ์ฒด ๊ธ(210)
-
ajax(๋น๋๊ธฐ ํต์ )
ajax(๋น๋๊ธฐ ํต์ , ์๋ฐ์คํฌ๋ฆฝํธ) -๋๊ธฐ : ํ์ด์ง ์ด๋๊ณผ ๋ฐ์ดํฐ ์ ์ก์ด ๋์์ ์ผ์ด๋๋ค -๋น๋๊ธฐ : ํ์ด์ง ์ด๋์ ํ์ง ์์๋ ๋ฐ์ดํฐ ์ ์ก ๊ฐ๋ฅ ์์คํ ์ ์ฑ๋ฅ์ ํฅ์ ์ํค๊ธฐ ์ํด ๋น๋๊ธฐ ์. ๋๊ฐ์ง ๋ฐฉ๋ฒ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ ์ ํ๊ฒ ์ฌ์ฉํจ. ajax ์ฐ์ต์ฉ ํ ์ด๋ธ 3๊ฐ ์์ฑ ํ๋ก์ ํธ ์๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ db์์ ๋ค ํด์ฃผ๊ธฐ! test_ajax.html ์์ฑ ํ ๋ฒํผ ๋ง๋ค์ด์ ajax ๊ธฐ๋ฅ test html - js ์ฐ๊ฒฐ ์์ ํ๊ธฐ ์์ 1. ajax ๊ฐ์ฒด ์์ฑ ํ๊ธฐ //ajax ์์ 1 function ajax_test1(){ //ajax ํต์ ์ ์ํ ๊ฐ์ฒด ์์ฑ const xhr = new XMLHttpRequest(); //controller๋ก ์ด๋ //์ฒซ๋ฒ์งธ ๋งค๊ฐ๋ณ์ : 'post', 'get' //๋๋ฒ..
2023.03.21 -
๊ฒ์ํ ํ๋ก์ ํธ - ๋๊ธ ๋ฑ๋ก ๋ฐ ์กฐํ
board_detail.html์์ ๋๊ธ ์ ๋ ฅ ๊ฐ๋ฅ, ๋๊ธ ๋ฆฌ์คํธ ์กฐํ ๋์ด์ผ ํจ. ๋๊ธ ์ ๋ ฅ ๊ธฐ๋ฅ ๋๊ธ ์ ๋ ฅ์ฐฝ ๋ง๋ค๊ธฐ ๋๊ธ replymapper์์ ๋๊ธ ๋ฑ๋ก insert๋ฌธ ์์ฑ INSERT INTO SPRING_REPLY ( REPLY_NUM , REPLY_CONTENT , REPLY_WIRTER , BOARD_NUM ) VALUES ( (SELECT 'REPLY_'||LPAD(NVL(MAX(TO_NUMBER(SUBSTR(REPLY_NUM, 7))), 0) + 1, 3, '0') FROM SPRING_REPLY) , #{replyContent} , #{replyWriter} , #{boardNum} ) ReplyService์ ๋ฉ์๋ ์์ฑ //๋๊ธ ๋ฑ๋ก void insertReply(ReplyVO r..
2023.03.20 -
๊ฒ์๊ธ ํ์ด์ง ์ฒ๋ฆฌ
์๋์ ํํ๋ก ํ์ด์ง ์ฒ๋ฆฌ ์ค์ ์ด์ 1 2 3 4 5 ๋ค์ ํ ํ์ด์ง์ 10๊ฐ์ฉ ๊ฒ์๊ธ ๋ชฉ๋ก ์กฐํ(์ต์ ๊ธ ๊ธฐ์ค) ํด๋น ํ์ด์ง๋ฅผ ํด๋ฆญํ๋ฉด ๊ทธ ํ์ด์ง์ ๋จ๋ ๊ฒ์๊ธ 10๊ฐ ์กฐํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฒ๋ฆฌ ํ์ด์ง ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ ํ์ด์ง ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ PageVO(๊ฐ์ฒด) ์์ฑ , getter/setter๋ ์์ฑ public class PageVO { private int nowPage; //ํ์ฌ ์ ํ๋ ํ์ด์ง ๋ฒํธ private int totalDataCnt; //์ ์ฒด ๋ฐ์ดํฐ(๊ฒ์๊ธ) ์ private int beginPage; //ํ๋ฉด์ ๋ณด์ด๋ ์ฒซ๋ฒ์งธ ํ์ด์ง ๋ฒํธ ์ด์ 1 2 3 4 5 ๋ค์ 1๋ฒ์๋ฆฌ ํด๋น private int endPage; //ํ๋ฉด์ ๋ณด์ด๋ ๋ง์ง๋ง ํ์ด์ง ๋ฒํธ 5๋ฒ์๋ฆฌ ํด๋น private ..
2023.03.20 -
BootStrap (๋ฐ์ํ ์น ์ฌ์ดํธ)
Docs - introduction - ๋๋ฒ์งธ ์์ค์์ ์๋ ๊ฒ๋ค ์ ์ฉํ html์ css/ js ์๋ฆฌ์ ๋ถ์ฌ ๋ฃ๊ธฐ css js Components - buttons ๋ฒํผ ํ์(? ๋ณผ ์ ์์ Primary Secondary Success Danger Warning Info Light Dark Link - BootStrap ์ํ BootStrap์ ๋ฒํผ๋ค Layout์ผ๋ก ํ๋ฉด ๊ตฌ์ญ ๋๋๊ธฐ ๋ฐ๋์ ๋ชจ๋ ๋ด์ฉ์ ํน์ ํด๋์ค์ ๊ฐ์ธ์ ๋ง๋ค ๊ฒ. div1 div2 div3 div4 div5 div6 div7 div8 ๋ฐ์ํ (pc > ์ค๋งํธํฐ ํ๋ฉด ํฌ๊ธฐ์ ๋ฐ๋ผ ํ๋ฉด ์ฌ์ด์ฆ ์๋ ์กฐ์ ) Navbar Home Features Pricing Disabled ์๊ฒ ํ๋ฉด ๋ฉ๋ด๋ฐ ๋ฌ๋ผ์ง
2023.03.17 -
spring - ์ธ๋ถ css/javascript ๋ก๋ฉ
์์น : static ํด๋ ์๋ (css/js/img) ์ธ๋ถ css์ html ์ฐ๊ฒฐ ์ link ํ๊ทธ ์ฌ์ฉ title ํ๊ทธ ์๋ ์์ฑ href ์์ฑ ์ ์ฃผ์! ccs/js ๊ธฐ์ค ํด๋ : static์ ์ ๊ทผํ๋ ค๋ฉด ๋ฌด์กฐ๊ฑด ๋งจ ์์ / ์์ด์ผ ๋๋ค. fragment ์ฌ์ฉ ์ ์ธ๋ถ css, js ์ฐ๊ฒฐํ๊ธฐ fragment ์ฌ์ฉ ์ ์์ ๊ฐ์ด css/script ์ฐ๊ฒฐ ํ๊ทธ๋ค์ด th:block ๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ฉ ์ ๋จ. ๊ทธ๋ฆฌ๊ณ ํ๋ฉด ๋ฐ๋ผ css, javascript ๋งค๋ฒ ๋ฐ๋๊ธฐ ๋๋ฌธ์ css, javascript๋ ์ฐ๊ฒฐ์ด ๋ฐ๋ ์ ์๊ฒ layout.html์ ์๋ ์ฝ๋ ์ถ๊ฐ css ์ฝ๋ ์์น : ์ js ์ฝ๋ ์์น : ํ๊ทธ ์ fragment.html์๋ ์๋์ ๊ฐ์ด css ๋ถ๋ฌ์ค๋ th:block / cont..
2023.03.17 -
Spring ํ๋ฉด ๋ถํ
Spring ๊ตฌ์กฐ ์ก๊ธฐ ๋ฉ๋ด ๋ณธ๋ฌธ ๋ถ๋ฆฌ jsp์ ํ๋ฉด ๋ถํ > template spring > fragment (thymeleaf์์ ์ง์ํ๋ ๊ธฐ๋ฅ) build.gradle์ dependencies ๋งจ ์ฒซ์ค์ ์๋ ์ฝ๋ ๋ฃ์ด์ผ ํ๋ฉด๋ถํ ๊ธฐ๋ฅ(fragment)์ ์ ๊ณตํด์ค๋ค. implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' ์ ์ฅ ํ gradle refresh ํด์ฃผ๊ธฐ! ๊ธฐ๋ฅ์ ์คํํ ์ปจํธ๋กค๋ฌ ๋ง๋ค์ด์ค templates ๋ฐ์ fragment์ content ํด๋ ์์ฑ fragmentํด๋ ์์ header.html ์์ฑ - ๋ฉ๋ด ๋ถ๋ถ user_layout.html ์์ฑ - ์ ์ ๊ฐ ๋ณด๋ ๋ชจ๋ html ์ด๋ฆฌ๋ layout ํ์ผ user_layout..
2023.03.16 -
Spring ๊ฒ์ํ ํ๋ก์ ํธ
ํ๋ก์ ํธ ์๋์ฒ๋ผ ๋ง๋ค ๊ฒ. com.study.board member controller vo service board controller vo service reply ๋ก๊ทธ์ธ ํ์ด์ง ์์ด๋ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ์ฐฝ - ๋ก๊ทธ์ธ ๋ฒํผ , ์กฐ์ธ ๋ฒํผ ๋ก๊ทธ์ธ ๋ฒํผ ๊ฒ์๊ธ ๋ชฉ๋ก ํ์ด์ง๋ก ์ด๋ ์กฐ์ธ ๋ฒํผ ํ์๊ฐ์ ํ์ด์ง๋ก ์ด๋ ํ๋ฉด ๋ถํ templates ํด๋ ๋ฐ์ content(๋ด์ฉ๋ถ html ๋ชจ์) ํด๋์ fragment ํด๋ ๋ง๋ค์ด ์ค content ํด๋ ์์ member/board ํด๋ ๋ฐ์ ํ๋ฉด์ ๋ณด์ฌ์ง ํด๋น html๋ค ์์ฑํ๋ฉด ๋จ. fragment(๋ชจ๋ html์ด ์ด๋ฆฌ๋ ํ์ผ ๋ชจ์)์ layout.html ์์ฑ ์๋ ์ฝ๋ ์์ฑํ์ฌ ํ๋ฉด ๋ถ๋ฆฌ fragment ํด๋ ๋ฐ์ header.html ์์ฑ ์๋ ์ฝ๋ ์์ฑ ..
2023.03.15 -
Spring ๋ฐ์ดํฐ ๋๊ธฐ๊ณ ๋ฐ๊ธฐ(์์ธ)
๋ฐฉ๋ฒ1. test1์์ name์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋์ด์ค๋ฉด Controller์์๋ ๋ณ์์ ๋์ด์ค๋ ์ด๋ฆ์ด๋ ๋๊ฐ์ด ๋ฐ์์ด. ๋ฐฉ๋ฒ2. ๋งค๊ฐ๋ณ์์๋ ์ด๋ ธํ ์ด์ ์ด ๋ค์ด์ฌ ์ ์๋ค. @RequestParam : ์์ฒญํ ๋ ๋์ด์ค๋ ํ๋ผ๋ฉํฐ(๋ฐ์ดํฐ)๋ฅผ ์ปจํธ๋กค(? name : ๋์ด์ค๋ ๋ฐ์ดํฐ ์ด๋ฆ @GetMapping("/test2") public String test2(@RequestParam(name = "name") String name) { return "test2"; } ๋์ด์ค๋ ๋ฐ์ดํฐ์ ์ด๋ฆ์ ๋ฐ๋ผ์ ๋ณ์๋ช ์ด ๋ฌ๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ ์๋ค. @GetMapping("/test2") public String test2(@RequestParam(name = "name") String data) { Sy..
2023.03.15 -
Spring - DB ํ์ ๊ด๋ฆฌ ์ค์ต
๋ฉค๋ฒ ํ ์ด๋ธ ์์ฑ ํ ์ฌ์ฉํ controller ๋ฑ ๋ค ๋ง๋ค์ด์ฃผ๊ณ MemberServiceImpl์ DB์ฐ๊ฒฐ ์์ ์ ์ํด ์๋ ์ฝ๋ ์์ฑ @Autowired private SqlSessionTemplate sqlSession; spring์์ input ๋ฒํผ์ผ๋ก ํ์ด์ง ์ด๋ํ ๋ ๋ฌธ๋ฒ ํน์ดํจ. ๋ฒํฐ์ปฌ๋ฐ์ ๊ฐ์ธ์ @{}์ ํ์ด์ง ์ด๋ํ ๊ณณ ๋ฃ์ด์ค. ํ์๋ฆฌํ์์ form ํ๊ทธ ์ ๊ณตํด์ฃผ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ ๋๊ธฐ๊ธฐ๋ ๊ฐ๋ฅ. th:action ์ฌ์ฉ / ํ์ด์ง ์ด๋์ ์ ๋ถ @{}์ ์์ฑ th:object="${memberVO}" ์์ฑ ๋ฃ์ด์ฃผ๊ณ inputํ๊ทธ์ th:field="*{๋ณ์ ์ด๋ฆ}" ์์ฑ์ ๋ฃ์ด์ฃผ๋ฉด MemberVO์ ๋ณ์์ ๋์ผํ๊ฒ id, name ๊ฐ ์๋์ผ๋ก ๋ฃ์ด์ค //ํ์ ๋ฑ๋ก ํ๋ฉด ์ด๋ @GetMap..
2023.03.15