view에서 id를 입력한 후 submit을 누르면 다음페이지에 값이 뜨게 해보자.
우선 따로 컨트롤러를 만들지 않고 HomeController에 메소드만 추가하며 실행.
1. index 매핑
HomeController에서..
1 2 3 4 | @RequestMapping("/index") public String goIndex() { return "index"; } | cs |
이렇게 매핑해주기.
2. index.jsp
(파일 경로)
views 밑에 index.jsp파일 생성해준다.
index.jsp에는
form태그를 이용해서 text, submit 적어주기.
form의 method가 get방식이므로 controller에서 @RequestMapping될 때 method가 GET인 것으로 찾아간다.
(반대로 post일 경우 POST를 찾아감)
3. submit을 눌렀을 때 연결될 view페이지 생성
views 밑에 student폴더 만들어주고 그 밑에 studentView.jsp 생성
studentView에서는 index.jsp에서 넘겨준 값을 보여주는 역할만 한다.
studentView.jsp에 들어갈 내용..
4. 마지막으로 Controller에서 studentView.jsp 매핑을 해보자
하나하나씩 살펴보면..
1. student로 들어오는 값은 goStudent메서드와 연결시킨다.
2. GET방식으로 값을 받을것.
※ 만약 POST방식으로 값이 전달된다면.. 405에러가 뜬다.
3. HttpServletRequest로 넘어온 id값을 id변수에 저장.
4. model에 id 저장.
5. 클라이언트에게 studentView페이지를 보여줌
실행결과 확인
url을 확인해보면 index에 매핑되어 해당 view페이지가 나타난 것을 알 수 있다.
1234입력후 전송을 누르면..
GET방식으로 id의 값이 나타나고 studentView에서 뿌려진 값이 1234인 것을 알 수 있다.
405에러를 실험해보자.
index.jsp의 form method가 get인데..
controller에서 method를 post로 설정해주게 되면
405..ㅎㅎ
view는 건들이지 않고 컨드롤러에서만 GET인지 POST인지 구별하여 실행할 수 있게 작업해보자.
controller에서
goStudent를 오버로딩 시키는데
→ 리턴타입을 ModelAndView, 매개변수 Model을 지워버린다.
ModelAndView는 반환값으로 ModelAndView객체를 반환한다.
객체 반환할 때 여러가지 정보를 가지고 가는데..
▶ 뷰의 이름 설정 : mv.setViewName("뷰의 경로");
▶ 데이터를 보낼 때 : mv.addObject("변수 이름", "데이터 값");
위와 같이 해주면 form의 method가 GET인지 POST인지 따로 구분하지 않고 실행할 수 있다.
'Web > Spring' 카테고리의 다른 글
[Spring] @RunWith(SpringJUnit4ClassRunner.class) ..Error (0) | 2018.10.17 |
---|---|
[Spring] Lombok : @Setter(onMethod_ = @Autowired) .. Error (2) | 2018.10.17 |
[Spring] MVC Project 생성 (0) | 2018.10.11 |
[Spring] import 프로젝트 BuildPath 수정 (0) | 2018.10.11 |
[Spring] STS 인코딩 설정 (0) | 2018.10.11 |