BasicControl
1.포워딩시 바인딩을 하고 싶다면 Model을 선언합니다.
2.model.addAttribute("보낼 이름", 보낼 자료);
넘어간 데이터는 .jsp파일에서 el을 이용해 출력합니다.
ex - > model.addAttribute("test", 자료); 로 바인딩한 경우
${test}로 .jsp에서 출력 가능
result를 먼저 선언을 해줍니다.
model.addAttribute("test", 자료);
ㄴ> result라는 이름으로 exchange.jsp로 보내주겠다.
ㄴ> won이라는 이름으로 exchange.jsp로 보내주겠다.
exchange.jsp를 타겟으로 하니 viesw폴더에 생성해주세요
views / 우클릭 new / jspfile / exchange 생성
= 컨트롤러에서 데이터를 뷰즈로 보내주는 역할이 model.addAttribute
/getDate 바인딩을 해주겠습니다.
Model을 선언해줍니다.
model.addAttribute("보낼 이름", 보낼 자료);
data1, data2 변수를 getResult.jsp 보내서 위 콘솔메세지를 화면에서 조회가능하게 해줍니다.
getResult 타겟으로 하니 viesw폴더에 생성
views / 우클릭 new / jspfile / getResult 생성
form 페이지와 결과페이지를 분리해야 합니다.
다만 목적지 주소가 .jsp기준이 아닌, @RequestMapping상의 주소기준으로 갑니다.
주소 moneyForm으로 연결되도록 아래에 어노테이션 + 메서드를 구성해주세요. moneyForm.jsp로 연결됩니다. moneyForm.jsp 에는 목적지를 # 으로 하고 name = won 인 폼을 추가로 만들어주세요.
메서드 방식을 post로 변경하겠습니다.
f12누르고 확인할수 있다
(post 방식은 한글이 깨져서 나옴)
해결 방안은
web.xml에 와서
작성해 준다.
실행 해주면
한글로 들어가서 글이 안깨지는걸 확인할수 있다.
@RequestMapping는 모든 방식을 허용하는걸 알수 있다.
method=RequestMethod.POST 이걸 써주면 post방식으로만 받을수 있다.
주소창에 getMoney?won=10000 입력을 하고 엔터를 치면 안들어 가지는걸 확인 할수 있다. (get방식 이라서 안됨 post방식으로만 받고 있어서)
moneyForm
에서 메서드 지정을 안해서 get방식으로 인식을 합니다.
ㄴ실행을 하면 에러가 남
post방식을 주고
실행하면 post 방식이기 때문에 에러가 안나는걸 확인할수 있다.
/getData post만 처리할 수 있게 처리
ㄴ> method=RequestMethod.POST 작성
연동된 form도 post로 전송하도록 처리
dataForm
ㄴ> method="post"
method=RequestMethod.POST(GET)이걸 작성하기 싫을때
바로 작성하는 거
@GetMapping (대놓고 겟방식만 허용하겠다)
@요청메서드 Mapping 은 해당 메서드만 허용하는 어노테이션
실행 해보면
/onlyGet 을 치고 들어갔을때
잘 되는걸 확인 가능( 파일이 없기 때문에 에러나는게 맞음)
@PostMapping로 바꿔서 실행 해보면
get방식은 허용하지 않는 다는 문구를 확인 가능