ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

Controller


UsersController

//ํšŒ์› ์ •๋ณด ๋ณ€๊ฒฝ ํŽ˜์ด์ง€ modify.jsp ์—ด๋žŒ ์š”์ฒญ
@GetMapping("/modify")
public ModelAndView modify() {
	return new ModelAndView ("user/modify");
}

//ํšŒ์› ์ •๋ณด ๋ณ€๊ฒฝ ์š”์ฒญ
@PostMapping("/modify")
public String modify(@RequestBody UsersVO user, HttpSession session) throws Exception {
	
	String result;
	UsersVO login = (UsersVO)session.getAttribute("login");
	
	logger.info("๋กœ๊ทธ์ธ ์„ธ์…˜ ํ™•์ธ  : " + login.toString());
	logger.info("๊ฐ€์ ธ์˜จ๊ฑฐ ํ™•์ธ  : " + user.toString());
	
	int isDuplicateId = usersService.isDuplicateId(user.getId());
	int isDuplicateEmail = usersService.isDuplicateEmail(user.getEmail());
	
	//๋ณ€๊ฒฝ์„ ์œ„ํ•ด ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ๋กœ์ง - ์ง€์ ธ๋ถ„ํ•˜๊ตฐใ…œใ…œ
	if(user.getEmail().equals(login.getEmail())) { 
		if(user.getId().equals(login.getId())) {
			//์ด๋ฉ”์ผ๊ณผ ์•„์ด๋””๊ฐ€ ๊ทธ์ „์— ์žˆ๋Š”๊ฑฐ๋ž‘ ๊ฐ™์œผ๋ฉด ๋ณ€๊ฒฝ ์ง„ํ–‰
			usersService.modifyInfo(user);
			result = "modifySuccess";
		} else {
			//์ด๋ฉ”์ผ์€ ๊ฐ™์€๋ฐ ์•„์ด๋””๊ฐ€ ๋‹ฌ๋ผ -> ์ค‘๋ณตํ™•์ธ ํ•„์š”
			if(isDuplicateId !=0 ) {
				
				result = "idFail";
			} else {
				usersService.modifyInfo(user);
				result = "modifySuccess";
			}
		}
		
	} else { //์ด๋ฉ”์ผ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ
		if(user.getId().equals(login.getId())) {
			//์ด๋ฉ”์ผ์ด ๋‹ค๋ฅด๊ณ  ์•„์ด๋””๊ฐ€ ๊ฐ™์€๊ฒฝ์šฐ๋Š” -> ์ด๋ฉ”์ผ ์ค‘๋ณตํ™•์ธ ํ•„์š”
			if(isDuplicateEmail != 0) {
				result = "emailFail";
			} else {
				usersService.modifyInfo(user);
				result = "modifySuccess";
			}
		} else {
			//์ด๋ฉ”์ผ ๋‹ค๋ฅด๊ณ  ์•„์ด๋””๋„ ๋‹ฌ๋ผ -> ๋‘˜๋‹ค ์ค‘๋ณตํ™•์ธ ํ•„์š”
			if(isDuplicateId != 0 ) {
				result = "idFail"; 
			} else if(isDuplicateEmail != 0) {
				result = "emailFail";
			} else {
				usersService.modifyInfo(user);
				result = "modifySuccess";
			}
		}
	}
	
	if(result.equals("modifySuccess")) {
		
		LoginVO modifyUser = new LoginVO();
		modifyUser.setEmail(user.getEmail());
		
		UsersVO mUser = usersService.login(modifyUser);
		session.setAttribute("login", mUser);
		System.out.println("login ์„ธ์…˜ ํ™•์ธ : " + mUser);
	}
	

	return result;
}

ํšŒ์› ์ •๋ณด ๋ณ€๊ฒฝ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด usersVO์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„์„œ ๊ฐ€์ ธ์˜จ๋‹ค. ๋กœ๊ทธ์ธ ์„ธ์…˜๋„ ๊ฐ€์ ธ์˜จ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์—์„œ ์ „์†กํ•œ ๋ฐ์ดํ„ฐ ์ค‘ ์•„์ด๋””์™€ ์ด๋ฉ”์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ๋ณ€๊ฒฝ์„ ์œ„ํ•ด ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ๋กœ์ง์„ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ ์•ฝ๊ฐ„ ์ง€์ €๋ถ„ํ•˜์ง€๋งŒ ๋‚˜์˜ ๋จธ๋ฆฌ๋กœ๋Š” ์ด ๋กœ์ง์ด ์ตœ์„ ์ธ๊ฐ€๋ณด๋‹คใ… .ใ… 

  1. ์ด๋ฉ”์ผ๊ณผ ์•„์ด๋””๊ฐ€ ๊ทธ ์ „์— ์žˆ๋˜ ๋ฐ์ดํ„ฐ(๋กœ๊ทธ์ธ์„ธ์…˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ)์™€ ๊ฐ™์œผ๋ฉด ๋ณ€๊ฒฝ์ง„ํ–‰
  2. ์ด๋ฉ”์ผ์€ ๊ฐ™์€๋ฐ ์•„์ด๋””๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด ์•„์ด๋””๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š”์ง€(์ค‘๋ณต์ธ์ง€) ํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ์กด์žฌํ•˜๋ฉด ๋ณ€๊ฒฝ์‹คํŒจ! ์•„์ด๋””๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š์œผ๋ฉด ๋ณ€๊ฒฝ์ง„ํ–‰ํ•œ๋‹ค.
  3. ์ด๋ฉ”์ผ์ด ๋‹ค๋ฅด๊ณ  ์•„์ด๋””๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ด๋ฉ”์ผ์˜ ์ค‘๋ณตํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค. ์ค‘๋ณต์ด๋ผ๋ฉด ๋ณ€๊ฒฝ์‹คํŒจ, ์ค‘๋ณต์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ณ€๊ฒฝ ์ง„ํ–‰ํ•œ๋‹ค.
  4. ์ด๋ฉ”์ผ๋„ ๋‹ค๋ฅด๊ณ  ์•„์ด๋””๋„ ๋‹ค๋ฅด๋‹ค๋ฉด ์ด๋ฉ”์ผ๊ณผ ์•„์ด๋”” ๋‘˜๋‹ค ์ค‘๋ณตํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค. ์•„์ด๋””์™€ ์ด๋ฉ”์ผ์ด ์ค‘๋ณต๋œ๋‹ค๋ฉด ๋ณ€๊ฒฝ์‹คํŒจ, ์•„๋‹ˆ๋ผ๋ฉด ๋ณ€๊ฒฝ์ง„ํ–‰ํ•œ๋‹ค.

๋ณ€๊ฒฝ์— ์„ฑ๊ณตํ•˜๋ฉด ๋กœ๊ทธ์ธ ์„ธ์…˜์— ๋‹ด๊ฒจ์žˆ๋˜ ๋ฐ์ดํ„ฐ๋„ ์ƒˆ๋กœ ์ €์žฅ์„ ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

 

 

 

Service


UsersService

//ํšŒ์› ์ •๋ณด ์ˆ˜์ •
@Override
public void modifyInfo(UsersVO user) throws Exception {
	
	//์—”ํ„ฐํ‚ค์™€ ์ŠคํŽ˜์ด์Šค๋ฐ” ์ฒ˜๋ฆฌ ์ œ์•ฝ ๋กœ์ง์„ ๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก์‹œ์— ์ฒ˜๋ฆฌ
	String adjustIntro = user.getIntro()
				.replace("\n", "<br>")
				.replace("u0020", "&nbsp;");
	
	user.setIntro(adjustIntro);
	
	usersDAO.modifyInfo(user);
}

์„œ๋น„์Šค ๋‹จ์—์„œ๋Š” ์†Œ๊ฐœ๊ธ€์˜ ๋‚ด์šฉ์—์„œ ์—”ํ„ฐํ‚ค์™€ ์ŠคํŽ˜์ด์Šค๋ฐ” ์ฒ˜๋ฆฌ ์ œ์•ฝ ๋กœ์ง์„ ๋ณ€๊ฒฝ์‹œ์— ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋„๋ก ํ•œ๋‹ค. \n์„ <br>๋กœ u0020 ์ŠคํŽ˜์ด์Šค๋ฅผ &nbsp๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

 

 

 

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€