[SPRING] 5장 컨트롤러 요청 처리 2 (7. 폼 방식 요청 처리)

jychae·2022년 12월 1일
0

스프링

목록 보기
8/12

7. 폼 방식 요청 처리

1. 폼 텍스트 필드 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerUserId
처리 : String registerUserId(String userId)

2. 폼 텍스트 필드 요소값을 자바빈즈 매개변수로 처리한다.

[요청과 처리]
요청 : /registerMemberUserId
처리 : String registerMemberUserId(Member member)

3. 폼 비밀번호 필드 요소값을 자바빈즈 매개변수로 처리한다.

[요청과 처리]
요청 : /registerPassword
처리 : String registerPassword(Member member )

4. 폼 라디오버튼 요소 값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerRadio
처리 : String registerRadio(String gender)

5. 폼 셀렉트 박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerSelect
처리 : String registerSelect(String nationality)

6. 복수 선택이 가능한 폼 셀렉트 박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerMultipleSelect01
처리 : String registerMultipleSelect01(String cars)
[ex) cars=volvo,jeep,bmw]

7. 복수 선택이 가능한 폼 셀렉트 박스 요소값을 문자열 배열 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerMultipleSelect02
처리 : String registerMultipleSelect02(String[] carArray)
[ex) carArray[volvo,jeep,bmw] 형태로 들어옴 (각 index를 가짐)]

8. 복수 선택이 가능한 폼 셀렉트 박스 요소값을 문자열 요소를 가진 리스트 컬렉션 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerMultipleSelect03
처리 : String registerMultipleSelect03(ArrayList carList)
[ex) carList null] ::: 리스트로 값을 가져올 시 null

9. 폼 체크박스 요소 값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerCheckbox01
처리 : String registerCheckbox01(String hobby)
[ex) hobby = Sports, Movie]

10. 폼 체크박스 요소 값을 문자열 배열 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerCheckbox02
처리 : String registerCheckbox02(String[] hobbyArray)
[ex) hobbyArray[Sports, Movie] 형태로 들어옴 (각 index를 가짐)]

11. 폼 체크박스 요속밧을 문자열 요소를 가진 리스트 컬렉션 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerCheckbox03
처리 : String registerCheckbox03(List hobbyList)
[No primary or default constructor found for interface java.util.List 에러발생]

12. 폼 체크박스 요소 값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerCheckbox04
처리 : String registerCheckbox04(String developer)
[체크되면 value에 설정된 값, 체크 안되면 null]

13. 폼 체크박스 요소 값을 기본 데이터 타입인 불리언 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerCheckbox05
처리 : String registerCheckbox05(boolean foreigner)
[체크되면 value에 설정된 값 true, 체크 안되면 null]

14. 폼 텍스트 필드 요소값을 자바빈즈 매개변수로 처리한다.

[요청과 처리]
요청 : /registerAddress
처리 : String registerAddress(Address address)

15. 폼 텍스트 필드 요소값을 중첩된 자바빈즈 매개변수로 처리한다.

[요청과 처리]
요청 : /registerUserAddress
처리 : String registerUserAddress(Member member)

16. 폼 텍스트 필드 요소값을 중첩된 자바빈즈 매개변수로 처리한다.

[요청과 처리]
요청 : /registerUserCardList
처리 : String registerUserCardList(Member member)

17. 폼 텍스트 영역 요소 값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerTextArea
처리 : String registerTextArea(String introduction)

18. 폼 텍스트 영역 요소 값을 Date 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerDate01
처리 : String registerDate01(Date dateOfBirth)

19. 폼 텍스트 영역 요소 값을 @DateTimeFormat 어노테이션을 지정하여 Date 타입 매개변수로 처리한다.

[요청과 처리]
요청 : /registerDate02
처리 : String registerDate02(@DateTimeFormat(patten = "yyyyMMdd") Date dateOfBirth)

 	<h4>7. 폼방식 요청 처리</h4>
 	<p>1) 폼 텍스트 필드 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.</p>
 	<form action="/registeruserId" method="post">
 		<p>userId : <input type="text" name="userId" /></p>
		<p><input type="submit" value="registeruserId"/> </p>
 	</form><br/>
 	
 	<p>2) 폼 텍스트 필드 요소값을 자바빈즈 매개변수로 처리한다.</p>
 	<form action="/registerMemberUserId" method="post">
 		<p>userId : <input type="text" name="userId" /></p>
		<p><input type="submit" value="registerMemberUserId"/> </p>
 	</form><br/>
 	
 	<p>3) 폼 비밀번호 필드 요소값을 자바빈즈 매개변수로 처리한다.</p>
 	<form action="/registerPassword" method="post">
 		<p>password : <input type="password" name="password" /></p>
		<p><input type="submit" value="registerPassword"/> </p>
 	</form><br/>
 	
 	<p>4) 폼 라디오 버튼 요소 값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.</p>
 	<form action="/registerRadio" method="post">
 		<p>gender : </p>
 		<p><input type="radio" name="gender" value="male" /> Male </p>
 		<p><input type="radio" name="gender" value="female" checked="checked"/> Female </p>
 		<p><input type="radio" name="gender" value="other" /> Other </p>
		<p><input type="submit" value="registerRadio"/> </p>
 	</form><br/>
 	
 	<p>5) 폼 셀렉트 박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.</p>
 	<form action="/registerSelect" method="post">
 		<p>nationality</p>
 		<select name="nationality">
 			<option>☆선택해주세요☆</option>
 			<option value="korea">대한민국</option>
 			<option value="germany">독일</option>
 			<option value="austrailia">호주</option>
 			<option value="canada">캐나다</option>
 			<option value="japan">일본</option>
 		</select>
 		<p><input type="submit" value="registerSelect"/> </p>
 	</form><br/>
 	
 	<p>6) 복수 선택이 가능한 폼 셀렉트 박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.</p>
 	<form action="/registerMultiSelect01" method="post">
 		<p>cars</p>
 		<select name="cars" multiple="multiple">
 			<option value="jeep">JEEP</option>
 			<option value="volvo">VOLVO</option>
 			<option value="bmw">BMW</option>
 			<option value="audi">AUDI</option>
 		</select>
 		<p><input type="submit" value="registerMultiSelect01"/> </p>
 	</form><br/>
 	
 	<p>7) 복수 선택이 가능한 폼 셀렉트 박스 요소값을 문자열 배열 타입 매개변수로 처리한다.</p>
 	<form action="/registerMultiSelect02" method="post">
 		cars: <br/>
 		<select name="carArray" multiple="multiple">
 			<option value="ferrari">FERRARI</option>
 			<option value="porsche">PORSCHE</option>
 			<option value="jeep">JEEP</option>
 			<option value="volvo">VOLVO</option>
 			<option value="bmw">BMW</option>
 			<option value="audi">AUDI</option>
 		</select>
 		<p><input type="submit" value="registerMultiSelect02_Arr"/> </p>
 	</form><br/>
 	
 	<p>8) 복수 선택이 가능한 폼 셀렉트 박스 요소를 가진 리스트 컬렉션 타입 매개변수로 처리한다.</p>
 	<form action="/registerMultiSelect03" method="post">
 		cars: <br/>
 		<select name="carList" multiple="multiple">
 			<option value="ferrari">FERRARI</option>
 			<option value="porsche">PORSCHE</option>
 			<option value="jeep">JEEP</option>
 			<option value="volvo">VOLVO</option>
 			<option value="bmw">BMW</option>
 			<option value="audi">AUDI</option>
 		</select>
 		<p><input type="submit" value="registerMultiSelect03_List"/> </p>
 	</form><br/>
 	
 	<p>9) 폼 체크박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.</p>
 	<form action="/registerCheckbox01" method="post">
 		hobby: <br/>
 		<input type="checkbox" name="hobby" value="sports"/> Sports<br/>
 		<input type="checkbox" name="hobby" value="music"/> Music<br/>
 		<input type="checkbox" name="hobby" value="movie"/> Movie<br/>
 		<input type="checkbox" name="hobby" value="game"/> Game<br/>
 		<input type="checkbox" name="hobby" value="development"/> Development<br/>
 		<input type="submit" value="registerCheckbox01"/> 
 	</form><br/>
 	
 	<p>10) 폼 체크박스 요소값을 문자열 배열 타입 매개변수로 처리한다.</p>
 	<form action="/registerCheckbox02" method="post">
 		hobby: <br/>
 		<input type="checkbox" name="hobbyArray" value="sports"/> Sports<br/>
 		<input type="checkbox" name="hobbyArray" value="music"/> Music<br/>
 		<input type="checkbox" name="hobbyArray" value="movie"/> Movie<br/>
 		<input type="checkbox" name="hobbyArray" value="game"/> Game<br/>
 		<input type="checkbox" name="hobbyArray" value="development"/> Development<br/>
 		<input type="submit" value="registerCheckbox02_Arr"/> 
 	</form><br/>
 	
 	<p>11) 폼 체크박스 요소값을 문자열 요소를 가진 리스트 컬렉션 타입 매개변수로 처리한다.</p>
 	<form action="/registerCheckbox03" method="post">
 		hobby: <br/>
 		<input type="checkbox" name="hobbyList" value="sports"/> Sports<br/>
 		<input type="checkbox" name="hobbyList" value="music"/> Music<br/>
 		<input type="checkbox" name="hobbyList" value="movie"/> Movie<br/>
 		<input type="checkbox" name="hobbyList" value="game"/> Game<br/>
 		<input type="checkbox" name="hobbyList" value="development"/> Development<br/>
 		<input type="submit" value="registerCheckbox03_List"/> 
 	</form><br/>
 	
 	
 	<p>12) 폼 체크박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.</p>
 	<form action="/registerCheckbox04" method="post">
 		developer: <br/>
 		<input type="checkbox" name="developer" value="Y"/><br/>
 		<input type="submit" value="registerCheckbox04"/> 
 	</form><br/>
 	
 	
 	<p>13) 폼 체크박스 요소값을 기본 데이터 타입인 불리언 타입 매개변수로 처리한다.</p>
 	<form action="/registerCheckbox05" method="post">
 		developer: <br/>
 		<input type="checkbox" name="foreigner" value="true"/><br/>
 		<input type="submit" value="registerCheckbox05"/> 
 	</form><br/>
 	
 	<p>14) 폼 텍스트 필드 요소값을 자바빈즈 매개변수로 처리한다</p>
 	<form action="/registerAddress" method="post">
 		postCode: <input type="text" name="postCode" ><br/>
 		location: <input type="text" name="location" ><br/>
 		<input type="submit" value="registerAddress"/> 
 	</form><br/>
 	
 	<p>15) 폼 텍스트 필드 요소값을 중첩된 자바빈즈 매개변수로 처리한다.</p>
 	<form action="/registerUserAddress" method="post">
 		address.postCode: <input type="text" name="address.postCode" ><br/>
 		address.location: <input type="text" name="address.location" ><br/>
 		<input type="submit" value="registerUserAddress"/> 
 	</form><br/>
 	
 	<p>16) 폼 텍스트 필드 요소값을 중첩된 자바빈즈 매개변수로 처리한다.</p>
 	<form action="/registerUserCardList" method="post">
 		카드1 - 번호 : <input type="text" name="cardList[0].no"></br>
 		카드1 - 유효년월 : <input type="text" name="cardList[0].validMonth"></br>
 		카드2 - 번호 : <input type="text" name="cardList[1].no"></br>
 		카드2 - 유효년월 : <input type="text" name="cardList[1].validMonth"></br>
 		<input type="submit" value="registerUserCardList"/> 
 	</form><br/>
 	
 	<p>17) 폼 텍스트 영역 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.</p>
 	<form action="/registerTextArea" method="post">
 		introduction : <br/>
 		<textarea rows="6" cols="100" name="introduction"></textarea></br>
 		<input type="submit" value="registerTextArea"/> 
 	</form><br/>
 	
 	<p>18) 폼 텍스트 영역 요소값을 Date 타입 매개변수로 처리한다.</p>
 	<p>날짜 문자열 형식을 yyyy/MM/dd 형식으로 지정하지 않으면 에러가 발생한다</p>
 	<p>날짜 문자열 형식을 내가 원하는 형태로 바꾸려면 @DatetimeFormat 어노테이션을 사용한다</p>
 	<form action="/registerDate01" method="post">
 		dateOfBirth : <input type="text" name="dateOfBirth"><br/>
 		<input type="submit" value="registerDate01"/> 
 	</form><br/>
	// 7. 폼방식 요청 처리
 	// 1) 
	// 폼 텍스트 필드 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.
	
	@RequestMapping(value = "/registeruserId", method = RequestMethod.POST) 
	public String registeruserId(String userId){	
		logger.info("registeruserId");
		logger.info("userId : " + userId);
		return "success"; 
	}
	
	// 2) 
	// 폼 텍스트 필드 요소값을 자바빈즈 매개변수로 처리한다
	@RequestMapping(value = "/registerMemberUserId", method = RequestMethod.POST) 
	public String registerMemberUserId(Member member){	
		logger.info("registerMemberUserId");
		logger.info("member.getUserId() : " + member.getUserId());
		return "success"; 
	}
	
	// 3) 
	// 폼 비밀번호 필드 요소값을 자바빈즈 매개변수로 처리한다
	@RequestMapping(value = "/registerPassword", method = RequestMethod.POST) 
	public String registerPassword(Member member){	
		logger.info("registerPassword");
		logger.info("member.getPassword() : " + member.getPassword());
		return "success"; 
	}
	
	// 4) 
	// 폼 라디오 버튼 요소 값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.
	@RequestMapping(value = "/registerRadio", method = RequestMethod.POST) 
	public String registerRadio(String gender){	
		logger.info("registerRadio");
		logger.info("gender : " + gender);
		return "success"; 
	}
	
	// 5) 
	// 폼 셀렉트 박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.
	@RequestMapping(value = "/registerSelect", method = RequestMethod.POST) 
	public String registerSelect(String nationality){	
		logger.info("registerSelect");
		logger.info("nationality : " + nationality);
		return "success"; 
	}
	
	// 6) 
	// 복수 선택이 가능한 폼 셀렉트 박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.
	@RequestMapping(value = "/registerMultiSelect01", method = RequestMethod.POST) 
	public String registerMultiSelect01(String cars){	
		logger.info("registerMultiSelect01");
		logger.info("cars : " + cars);
		return "success"; 
	}
	
	// 7) 
	// 복수 선택이 가능한 폼 셀렉트 박스 요소값을 문자열 배열 타입 매개변수로 처리한다.
	@RequestMapping(value = "/registerMultiSelect02", method = RequestMethod.POST) 
	public String registerMultiSelect02(String[] carArray){	
		logger.info("registerMultiSelect02");
		
		if(carArray != null) {
			logger.info("carArray.length : " + carArray.length);
			for(int i = 0 ; i< carArray.length; i++) {
				logger.info("carArray[" + i + "] : " + carArray[i]);
			}
		}else {
			logger.info("carArray == null ");
		}
		return "success"; 
	}
	
	// 8) 
	// 복수 선택이 가능한 폼 셀렉트 박스 요소를 가진 리스트 컬렉션 타입 매개변수로 처리한다.
	@RequestMapping(value = "/registerMultiSelect03", method = RequestMethod.POST) 
	public String registerMultiSelect03(ArrayList<String> carList){	
		logger.info("registerMultiSelect03");
		
		// 리스트로는 셀렉트 박스 값을 가져올 수 없습니다.
		// 배열 형태를 사용하거나 객체를 이용하세요
		if(carList != null && carList.size() > 0) {
			logger.info("carList.size() : " + carList.size());
			for(int i = 0 ; i < carList.size(); i++) {
				logger.info("carList[" + i + "] : " + carList.get(i));
			}
		}else {
			logger.info("carList == null ");
		}
		
		return "success"; 
	}
	
	// 9)
	// 폼 체크박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.
	@RequestMapping(value = "/registerCheckbox01", method = RequestMethod.POST) 
	public String registerCheckbox01(String hobby){
		logger.info("registerCheckbox01");
		logger.info("hobby: " + hobby);
		return "success"; 
	}
	
	// 10)
	// 폼 체크박스 요소값을 문자열 배열 타입 매개변수로 처리한다.
	@RequestMapping(value = "/registerCheckbox02", method = RequestMethod.POST) 
	public String registerCheckbox02(String[] hobbyArray){
		logger.info("registerCheckbox02");
		if(hobbyArray != null) {
			logger.info("hobbyArray.length : " + hobbyArray.length);
			for(int i = 0 ; i < hobbyArray.length; i++) {
				logger.info("hobbyArray[" + i + "] : " + hobbyArray[i]);
			}
		}else {
			logger.info("hobbyArray == null ");
		}
		return "success"; 
	}
	
	// 11)
	// 폼 체크박스 요소값을 문자열 요소를 가진 리스트 컬렉션 타입 매개변수로 처리한다
	@RequestMapping(value = "/registerCheckbox03", method = RequestMethod.POST) 
	public String registerCheckbox03(List<String> hobbyList){	
		logger.info("registerCheckbox03");
		// 1) ArrayList로 값을 받는 경우
		// - 값이 넘어오지 않아 size 0
		
		// 2) List로 값을 받는 경우
		// - No primary or default constructor found for interface java.util.List 에러발생
		// - Spring에서 List로는 데이터를 받는게 XXXXXXXXX
		// - 리스트와 같은 형태의 값을 받으려면 String[] 로 여러 데이터를 받아서 List에 담는 방법이 있습니다.
		if(hobbyList != null && hobbyList.size() > 0) {
			logger.info("hobbyList.size() : " + hobbyList.size());
			for(int i = 0 ; i < hobbyList.size(); i++) {
				logger.info("hobbyList[" + i + "] : " + hobbyList.get(i));
			}
		}else {
			logger.info("hobbyList == null ");
		}
		
		return "success"; 
	}
	
	// 12)
	// 폼 체크박스 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다
	@RequestMapping(value = "/registerCheckbox04", method = RequestMethod.POST) 
	public String registerCheckbox04(String developer){	
		logger.info("registerCheckbox04");
		logger.info("developer : " + developer);
		return "success"; 
	}
	
	// 13)
	// 폼 체크박스 요소값을 기본 데이터 타입인 불리언 타입 매개변수로 처리한다.
	@RequestMapping(value = "/registerCheckbox05", method = RequestMethod.POST) 
	public String registerCheckbox05(boolean foreigner){	
		logger.info("registerCheckbox05");
		logger.info("foreigner : " + foreigner);
		return "success"; 
	}
	
	// 14)
	// 폼 체크박스 요소값을 자바빈즈 매개변수로 처리한다.
	@RequestMapping(value = "/registerAddress", method = RequestMethod.POST) 
	public String registerAddress(Address address){	
		logger.info("registerAddress");
		if(address != null){
			logger.info("address.getPostCode() : " + address.getPostCode());
			logger.info("address.getLocation() : " + address.getLocation());
		}else {
			logger.info("address == null ");
		}
		return "success"; 
	}
	
	// 15)
	// 폼 체크박스 요소값을 중첩된 자바빈즈 매개변수로 처리한다.
	@RequestMapping(value = "/registerUserAddress", method = RequestMethod.POST) 
	public String registerUserAddress(Member member){	
		logger.info("registerUserAddress");
		
		Address address = member.getAddress();
		
		if(address != null){
			logger.info("address.getPostCode() : " + address.getPostCode());
			logger.info("address.getLocation() : " + address.getLocation());
		}else {
			logger.info("address == null");
		}
		return "success"; 
	}
	
	// 16)
	// 폼 텍스트 필드 요소값을 중첩된 자바빈즈 매개변수로 처리한다
	@RequestMapping(value = "/registerUserCardList", method = RequestMethod.POST) 
	public String registerUserCardList(Member member){	
		logger.info("registerUserCardList");
		
		List<Card> cardList = member.getCardList();
		
		if(cardList != null){
			logger.info("cardList.size() :" + cardList.size());
			
			for(int i = 0; i < cardList.size(); i++) {
				Card card = cardList.get(i);
				logger.info("card.getNo() :" + card.getNo());
				logger.info("card.getValidMonth() :" + card.getValidMonth());
			}
		}else {
			logger.info("cardList == null");
		}
		return "success"; 
	}
	
	
	// 17)
	// 폼 텍스트 영역 요소값을 기본 데이터 타입인 문자열 타입 매개변수로 처리한다.
	@RequestMapping(value = "/registerTextArea", method = RequestMethod.POST) 
	public String registerTextArea(String introduction){	
		logger.info("registerTextArea");
		logger.info("introduction :" + introduction);
		return "success"; 
	}
	
	// 18)
	// 폼 텍스트 영역 요소값을 Date 타입 매개변수로 처리한다.
	// 정상적인 날짜 데이터를 출력하기 위해서는 날짜 문자열 형식을 'yyyy/MM/dd' 형식으로 지정해야한다.
	// 내가 원하는 문자열 형식을 지정하려면 @DateTimeFormat 어노테이션을 이용하여 해당 형식에 맞춰 데이터를 보내면 된다.
	@RequestMapping(value = "/registerDate01", method = RequestMethod.POST) 
//	public String registerDate01(Date dateOfBirth){	
	public String registerDate01(@DateTimeFormat(pattern = "yyyyMMdd") Date dateOfBirth){	
		logger.info("registerDate01");
		if(dateOfBirth != null) {
			logger.info("dateOfBirth : " + dateOfBirth);
		} else {
			logger.info("dateOfBirth == null ");
		}
		return "success"; 
	}
profile
안녕하세요! 초보개발자 공부 시작!

0개의 댓글