반응형

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인지 따로 구분하지 않고 실행할 수 있다.

반응형

+ Recent posts