Spring

์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ - ์˜ค๋ฅ˜ ๋ณด์™„

byeol_dev 2023. 4. 19. 10:09

๋ฉ”๋‰ด ๋„์šฐ๋Š” ๊ธฐ๋Šฅํ•˜๋ฉด์„œ ํ˜„์žฌ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์— ์˜ํ–ฅ > ์˜ค๋ฅ˜ ๋‚˜๋Š” ๋ถ€๋ถ„ ์žก๊ณ  ๊ฐ€๊ธฐ

 

1. ์ƒํ’ˆ ๋“ฑ๋ก ํ›„ adminSubMenuVO null ์˜ค๋ฅ˜

์„œ๋ธŒ ๋ฉ”๋‰ด ์กฐํšŒํ•  ๋•Œ ์–ด๋–ค ๋ฉ”๋‰ด์— ์†ํ•ด์žˆ๋Š” ์„œ๋ธŒ ๋ฉ”๋‰ด์ธ์ง€ ๋ฉ”๋‰ด์ฝ”๋“œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์™€์•ผ ํ•จ(์ฟผ๋ฆฌ ๋นˆ ๊ฐ’)

๋ฉ”๋‰ด์ธํ„ฐ์…‰ํ„ฐ์—์„œ ์„œ๋ธŒ์— ๋ฉ”๋‰ด์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ๋•Œ ๋ฉ”๋‰ด ์ฝ”๋“œ ๋˜์ง€๋Š”๋ฐ

์ด ๋ฉ”๋‰ด ์ฝ”๋“œ๋Š” controller์—์„œ html ๊ฐ€๊ธฐ ์ „์— ๋“ค๋ ค์„œ(? ์„œ๋ธŒ๋ฉ”๋‰ดVO(์ปค๋งจ๋“œ๊ฐ์ฒด)๋กœ ๋ฉ”๋‰ด ์ฝ”๋“œ ๋ฐ›์•„์„œ ์ฟผ๋ฆฌ ๋นˆ ๊ฐ’ ์ฑ„์›€

 

ํ˜„์žฌ ์ƒํ’ˆ ๋“ฑ๋ก ํ›„ ๋ฉ”๋‰ด์ธํ„ฐ์…‰ํ„ฐ๊ฐ€ ์‹คํ–‰๋จ.

์ธํ„ฐ์…‰ํ„ฐ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์„œ๋ธŒ๋ฉ”๋‰ดVO์—์„œ ๋ฉ”๋‰ด ์ฝ”๋“œ๋ฅผ ์ฐพ๋Š”๋ฐ ์ƒํ’ˆ ๋“ฑ๋ก ๋•Œ๋Š” ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ ๋„˜์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜.

 

์ปค๋งจ๋“œ ๊ฐ์ฒด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๋ฉด ๊ฐ€๋Šฅ? ใ„ดใ„ด

์ง€๊ธˆ ์ƒํ’ˆ ๋“ฑ๋ก ํ›„ redirect๋กœ controller ์ด๋™ํ•˜๋Š”๋ฐ redirect ์‚ฌ์šฉ ์‹œ model๋กœ ๋ฐ์ดํ„ฐ ๋ชป ๊ฐ€์ ธ๊ฐ.

 

์˜ค๋ฅ˜ ์žก๊ธฐ.

์ƒํ’ˆ ๋“ฑ๋ก ํŽ˜์ด์ง€๋กœ ์˜ค๋Š” ๊ฒฝ์šฐ

1. ์‚ฌ์ด๋“œ ๋ฉ”๋‰ด์—์„œ ํด๋ฆญ(๋ฉ”๋‰ด ์ฝ”๋“œ ์„œ๋ธŒ ๋ฉ”๋‰ด ์ฝ”๋“œ ๋ฐ์ดํ„ฐ ๋„˜์–ด์˜ด) controller๋ฅผ ๋ณด๋ฉด ์ด๋ฏธ subMenuVO๋ฅผ ์ปค๋งจ๋“œ ๊ฐ์ฒด๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ.

2. ์ƒํ’ˆ ๋“ฑ๋ก ํ›„ redirect 

์ƒํ’ˆ ๋“ฑ๋ก ํ›„ ๋‹ค์‹œ ์ƒํ’ˆ ๋“ฑ๋ก ํŽ˜์ด์ง€๋กœ ๊ฐ€๋Š”๋ฐ, ๋ฉ”๋‰ด ์ฝ”๋“œ ์—†์–ด์„œ ์˜ค๋ฅ˜๋‚จ.

๋ฉ”๋‰ด ์ฝ”๋“œ ๋ฐ์ดํ„ฐ ์„ธํŒ…ํ•ด์ฃผ๋Š” ์•„๋ž˜ ์ฝ”๋“œ ํ•„์š”! 

if(adminSubMenuVO.getMenuCode() == null) {
    adminSubMenuVO.setMenuCode("MENU_001");
}
if(adminSubMenuVO.getSubMenuCode() == null) {
    adminSubMenuVO.setSubMenuCode("SUB_MENU_002");

}

์–ด์ฐจํ”ผ ๊ฐ•์ œ๋กœ ๋„˜๊ธฐ๋Š” ๋ฐ์ดํ„ฐ ๋ชป ๋ฐ›์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ?๋กœ ๋„˜๊ธฐ๋Š” ๋ฐ‘์ค„ ๊ทธ์–ด์ง„ ๋ฐ์ดํ„ฐ ๋„˜๊ธฐ๋Š” ์ฝ”๋“œ๋Š” ์ง€์›Œ์คŒ.

๊ทธ๋ฆฌ๊ณ  ์ธํ„ฐ์…‰ํ„ฐ ์•ˆ ํƒ€๊ฒŒ ์ž‘์—…. 

์ƒํ’ˆ๋“ฑ๋ก๊ณผ ์ƒํ’ˆ๋“ฑ๋กํŽ˜์ด์ง€ ์ด๋™๊ฒฝ๋กœ ์ด๋ฆ„ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜ ๋‹ค ์ธํ„ฐ์…‰ํ„ฐ ํƒ.

์ธํ„ฐ์…‰ํ„ฐ ์ปจํ”ผ๊ทธ๋ฅผ ๋ณด๋ฉด ๋ฉ”๋‰ด regItem์ธ ๊ฒฝ์šฐ ์ธํ„ฐ์…‰ํ„ฐ ์‹คํ–‰๋จ.

์ƒํ’ˆ ๋“ฑ๋ก ํ›„ ์ธํ„ฐ์…‰ํ„ฐ ์•ˆ ํƒ€๊ฒŒ ์ƒํ’ˆ ๋“ฑ๋ก ์ด๋™๊ฒฝ๋กœ regItemProcess๋กœ ์ˆ˜์ •

controller ์ด๋™ ๊ฒฝ๋กœ ์ˆ˜์ •ํ•˜์˜€์œผ๋ฉด reg_litem.html์—์„œ form ํƒœ๊ทธ action ์ด๋™ ๊ฒฝ๋กœ๋„ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•จ.

ํ˜„์žฌ controller์—์„œ ๋ฉ”๋‰ด ์ •๋ณด๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์„ธํŒ…์‹œํ‚ค๋Š” ์ฝ”๋“œ ๊ณ„์†์ ์œผ๋กœ ๋ฐ˜๋ณต.

์„œ๋ธŒ ๋ฉ”๋‰ด VO์— ๋ฉ”๋‰ด ์ •๋ณด๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์„ธํŒ…์‹œํ‚ค๋Š” ๋ฉ”์†Œ๋“œ ์ƒ์„ฑ.

๋ฉ”๋‰ด ์ •๋ณด๋Š” ์–ด๋–ค controller๋ƒ์— ๋”ฐ๋ผ menuCode, subMenuCode ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์Œ

//๋ฉ”๋‰ด ์ฝ”๋“œ๊ฐ€ ์—†์„ ๋•Œ ๋ฐ์ดํ„ฐ ์„ธํŒ…์‹œํ‚ค๋Š” ๋ฉ”์†Œ๋“œ
public void setMenuInfo(String menuCode, String subMenuCode) {
    if(getMenuCode() == null) {
        setMenuCode(menuCode);
    }
    if(getSubMenuCode() == null) {
        setSubMenuCode(subMenuCode);
    }
}

controller์—์„œ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•˜๋ฉด ๋จ.

์ƒํ’ˆ ๋“ฑ๋ก ํŽ˜์ด์ง€ ๊ฒฝ์šฐ.

adminSubMenuVO.setMenuInfo("MENU_001", "SUB_MENU_002");

์นดํ…Œ๊ณ ๋ฆฌ ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ๊ฒฝ์šฐ

์•„๋ž˜ if๋ฌธ ์ฝ”๋“œ ์‚ญ์ œ

์•„๋ž˜ ์ฝ”๋“œ๋กœ ๋Œ€์ฒด

//๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธ ํ•œ ๊ฒฝ์šฐ ์ฒซ ํŽ˜์ด์ง€ ์นดํ…Œ๊ณ ๋ฆฌ ํŽ˜์ด์ง€๋กœ ์ด๋™.(๊ฐ€์ ธ๊ฐ€๋Š” ๋ฐ์ดํ„ฐ X)
//์ธ๋ฑ์Šค ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์˜ฌ ๋•Œ๋Š” ๋ฐ์ดํ„ฐ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ธŒ ๋ฉ”๋‰ด ์ฝ”๋“œ ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ.
adminSubMenuVO.setMenuInfo(ConstVariable.DEFAULT_MENU_CODE, ConstVariable.DEFAULT_SUB_MENU_CODE_1);

ํšŒ์› ์ •๋ณด ๊ด€๋ฆฌ ํŽ˜์ด์ง€.

์•„๋ž˜ if๋ฌธ ์‚ญ์ œ

์•„๋ž˜ ์ฝ”๋“œ๋กœ ๋Œ€์ฒด

//์ƒ๋‹จ ๋ฉ”๋‰ด ํด๋ฆญ ์‹œ SUB_MENU_CODE ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ•์ œ๋กœ ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ(๋ฉ”๋‰ด์— ํŒŒ๋ž€์ƒ‰ ํ‘œ์‹œ๋ฅผ ์œ„ํ•จ)		
adminSubMenuVO.setMenuInfo("MENU_002", ConstVariable.DEFAULT_SUB_MENU_CODE_2);

์ฃผ๋ฌธ๊ด€๋ฆฌ ํŽ˜์ด์ง€

์•„๋ž˜ if๋ฌธ ์ฝ”๋“œ ์‚ญ์ œ

์•„๋ž˜ ์ฝ”๋“œ๋กœ ๋Œ€์ฒด

//์ƒ๋‹จ ๋ฉ”๋‰ด ํด๋ฆญ ์‹œ SUB_MENU_CODE ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ•์ œ๋กœ ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ(๋ฉ”๋‰ด์— ํŒŒ๋ž€์ƒ‰ ํ‘œ์‹œ๋ฅผ ์œ„ํ•จ)	
adminSubMenuVO.setMenuInfo("MENU_003", ConstVariable.DEFAULT_SUB_MENU_CODE_3);

 

์›”๋ณ„ ํ˜„ํ™ฉ ํŽ˜์ด์ง€

์•„๋ž˜ if๋ฌธ ์ฝ”๋“œ ์‚ญ์ œ

์•„๋ž˜ ์ฝ”๋“œ๋กœ ๋Œ€์ฒด

//js์—์„œ ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ๋ฉ”๋‰ด ์ฝ”๋“œ ์•ˆ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ž„์˜๋กœ ๋„ฃ์–ด์คŒ
adminSubMenuVO.setMenuInfo("MENU_003", "SUB_MENU_007");

 

 

2. ์ƒํ’ˆ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์˜ค๋ฅ˜

๋ฉ”๋‰ด ์ •๋ณด ์—†์–ด์„œ ์˜ค๋ฅ˜

์ƒํ’ˆ ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ์‚ฌ์ด๋“œ ๋ฉ”๋‰ด ํด๋ฆญ ์‹œ ๋ฉ”๋‰ด ์ •๋ณด๋“ค ์„œ๋ธŒ๋ฉ”๋‰ดVO๊ฐ€ ๋ฐ›์Œ

๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ์ƒํ’ˆ๊ด€๋ฆฌ ํŽ˜์ด์ง€๋กœ ์˜ค๋Š”๋ฐ ๊ทธ๋•Œ๋Š” ๋ฐ์ดํ„ฐ ์•ˆ ๋ฐ›์•„์˜ด > ์˜ค๋ฅ˜

๋ฉ”๋‰ด ์ •๋ณด ์„ธํŒ… ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€.

//๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์‚ฌ์šฉ ํ›„ ์ƒํ’ˆ ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ์˜ฌ ๋•Œ ๋ฉ”๋‰ด ์ •๋ณด ์„ธํŒ…
adminSubMenuVO.setMenuInfo("MENU_001", "SUM_MENU_003");