Spring 4

**_*JSP์—์„œ LocalDateTime ํฌ๋งคํŒ… ๋ฌธ์ œ ํ•ด๊ฒฐ_***

์ž‘์„ฑ์ผ์ž: 2023๋…„ 7์›” 21์ผ โœ”๊ฒฐ๋ก ๐Ÿšฉ๋“ค์–ด๊ฐ€๋ฉฐ๐Ÿ‘€๋ฌธ์ œ ์ •์˜โ“์›์ธ ์ถ”๋ก ๐Ÿ’ช๐Ÿป ํ•ด๊ฒฐ์ฑ… ์‹œ๋„๐Ÿ’กํ•ด๊ฒฐ๋ฐฉ๋ฒ• โœ”๊ฒฐ๋ก LocalDateTime์˜ ํƒ€์ž…์œผ๋กœ JSTL์˜ ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜์˜€์œผ๋‚˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์ผ์‹œ ํƒ€์ž…์„ Date๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๐Ÿšฉ๋“ค์–ด๊ฐ€๋ฉฐLocalDateTime์ธ ํƒ€์ž…์„ JSP์—์„œ el๋กœ ์ถœ๋ ฅํ–ˆ๋”๋‹ˆ ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์‚ฌ์ด์— ‘T’๋ผ๋Š” ๋ฌธ์ž์—ด์ด ๊ปด์„œ ์ถœ๋ ฅ์ด ๋˜์—ˆ๋‹ค. ์ฐพ์•„๋ณด๋‹ˆ LocalDateTime์€ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ T ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. private LocalDateTime aprvDttm; ๐Ÿ‘€๋ฌธ์ œ ์ •์˜์ด๋Ÿฐ ํ˜•์‹์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์•„์„œ formatting ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด์•˜๋”๋‹ˆ jstl์˜ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์˜ ํ˜•์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ–ˆ๋‹ค.์ด๋ ‡๊ฒŒ ์ง€์ •ํ•˜๊ณ  ์‹คํ–‰ํ–ˆ๋”๋‹ˆ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ..

Trouble-Shooting 2024.01.24

JSP el์—์„œ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ ์˜ค๋ฅ˜: getter ๋ฉ”์„œ๋“œ๋ช…๊ณผ ํ•„๋“œ๋ช…์˜ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ ํ•ด๊ฒฐ

์ž‘์„ฑ์ผ์ž: 2023๋…„ 7์›” 19์ผ โœ”๊ฒฐ๋ก ๐Ÿ‘€๋ฌธ์ œ ์ •์˜โ“์›์ธ ์ถ”๋ก  & ํ•ด๊ฒฐ์ฑ… ์‹œ๋„โœ”์›์ธ๐Ÿ’กํ•ด๊ฒฐ๋ฐฉ๋ฒ•๐Ÿ’จ๋‚˜๊ฐ€๋ฉฐ โœ”๊ฒฐ๋ก JSP์—์„œ el์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๋ฉด ํ•ด๋‹น DTO์— getter๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž ๐Ÿ‘€๋ฌธ์ œ ์ •์˜el๋กœ ํŒ๋งค๊ฐ€๋ฅผ ์ถœ๋ ฅํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ salePrc๋งŒ ์ฐ์œผ๋ฉด ํ™”๋ฉด์ด ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ๋‚˜์˜ค๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒ.. ์› โ“์›์ธ ์ถ”๋ก  & ํ•ด๊ฒฐ์ฑ… ์‹œ๋„Controller์—์„œ Model์— ๋‹ด์•˜๋˜ productDetail์„ ์ฐ์–ด๋ณด๋ฉด slaePrc ์ž˜ ๋‹ด๊ฒจ์žˆ์Œ ๐Ÿ˜ข→ ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ ๋‹ด๊ธด ๋ฌธ์ œ๋Š” ์•„๋‹˜..๋‹ค๋ฅธ ๊ฐ’๋“ค์€ ์ž˜ ์ถœ๋ ฅ๋˜๋Š”๋ฐ slaePrc๋งŒ ์ฐ์œผ๋ฉด ๋นˆํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค. โœ”์›์ธel์—์„œ ${productDetail.salePrc} ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ–ˆ์„ ๊ฒฝ์šฐ productDetail.salePrc์˜ getter๋ฅผ ํ˜ธ์ถœํ•ด์„œ ๊ฐ’์„ ๊ฐ€..

Trouble-Shooting 2024.01.24

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‹คํ–‰์‹œ ApplicationContext ๋กœ๋“œ ์‹คํŒจ ์—๋Ÿฌ

์ž‘์„ฑ์ผ์ž: 2023๋…„ 7์›” 17์ผ โœ”๊ฒฐ๋ก ๐Ÿ‘€๋ฌธ์ œ ์ •์˜โ“์›์ธโœ”ํ•ด๊ฒฐ๋ฐฉ๋ฒ•1. ์›น ํ™˜๊ฒฝ ์‹œ๋ฎฌ๋ ˆ์ด์…˜2. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ WebConfig.java ์Šค์บ” ์ œ์™ธ โœ”๊ฒฐ๋ก WebMvcConfigurer ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์— @Configuration, @EnableWebMvc ์• ๋„ˆํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  root-context.xml์— component-scan์ด ๋ชจ๋“  ํŒจํ‚ค์ง€๋กœ ์„ค์ •์ด ๋˜์–ด์žˆ๋‹ค๋ฉด WebMvcConfigurer ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋ฅผ ์Šค์บ” ์ œ์™ธํ•ด์ฃผ๋ฉด๋œ๋‹ค. ๐Ÿ‘€๋ฌธ์ œ ์ •์˜ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‹คํ–‰ ์‹œ java.lang.IllegalStateException: Failed to load ApplicationContext ์—๋Ÿฌ ๋ฐœ์ƒ โ“์›์ธWebConfig.java์—์„œ @EnableWebMvc ์–ด๋…ธํ…Œ์ด์…˜์ด ์›น ์–ดํ”Œ๋ฆฌ์ผ€..

Trouble-Shooting 2024.01.24

Bean ์ฃผ์ž… ์•ˆ๋จ : ์ž๋™ ์ฃผ์ž…๋œ ๋ฉค๋ฒ„๋Š” ์˜ฌ๋ฐ”๋ฅธ Spring bean์—์„œ ์ •์˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(@Component|@Service|...)

์ž‘์„ฑ์ผ์ž: 2023๋…„ 5์›” 15์ผ โœ”๊ฒฐ๋ก ๐Ÿ‘€๋ฌธ์ œ ์ •์˜๐Ÿฆพํ•ด๊ฒฐ์ฑ… ์‹œ๋„โœ”์›์ธ & ํ•ด๊ฒฐ๋ฐฉ๋ฒ• โœ”๊ฒฐ๋ก  ๐Ÿ‘€๋ฌธ์ œ ์ •์˜UserDao๊ฐ€ ์ฃผ์ž…์ด ์•ˆ๋จsout์œผ๋กœ ์ฐ์–ด๋ณด๋ฉด null๋œฌ๋‹ค..class UserDaoImplTest { @Autowired UserDao userDao; @Test void selectUser() throws SQLException { System.out.println("userDao = " + userDao); // User user = userDao.selectUser("coals0115"); // assertTrue("coals0115".equals(user.getId())); } } ๐Ÿฆพํ•ด๊ฒฐ์ฑ… ์‹œ๋„โŒ UserDaoImpl์— @Repository ๋ถ™์–ด์žˆ๋Š” ๊ฑฐ ํ™•์ธํ–ˆ์Œ@Repository public ..

Trouble-Shooting 2024.01.24