일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- online
- 자료형
- 오픈한글
- 배열
- 연동
- Judge
- Framework
- 저지
- Python
- 알고리즘
- ubuntu
- Tornado
- 이클립스
- r
- API
- Java
- mariadb
- 설치
- OrientDB
- r script
- 연결
- AWS
- 프레임워크
- MongoDB
- spring
- 토네이도
- BAEKJOON
- 자바스크립트
- 파이썬
- 백준
Archives
- Today
- Total
맛동산
Controller에서 RequestMapping등 케이스(chap05) 본문
@RequestMapping(value="/hello.do", method=RequestMethod.GET)// 생략하면 get방식 public ModelAndView hello(){ /* ModelAndView - Model : DB의 리턴값 - View : 포워딩할 view page 정보 스프링에서 제공하는 별도의 클래스 */ ModelAndView mav = new ModelAndView(); mav.addObject("name", "홍길동"); // Model의 값 (키 벨류형) mav.setViewName("hello"); // 이동할 view page의 이름 - views/hello.jsp return mav; // 실제 포워딩 } /* @ModelAttribute("참조변수") - 클라이언트의 요청 파라미터를 처리하는 애노테이션 - 파라미터와 VO 멤버와 자동 바인딩 되어 객체 생성 - 이렇게 생성된 객체는 "참조변수"에 저장되어 view page에 포워딩 됨 - 이렇게 생성된 객체 = Command Object */ // 요청 url = "/command/object.do" 전송방식 : GET @RequestMapping(value="/command/object.do",method=RequestMethod.GET) // ------------ @RequestMapping(method=RequestMethod.GET) 이런형태도 가능 public String form(){ // view page 포워딩 return "command/form"; // views/command/form.jsp } // 요청 url="/command/object.do" 전송방식 :Post @RequestMapping(value="/command/object.do",method=RequestMethod.POST) // 3개 파라미터 요청(bno, title, content) public String submit(@ModelAttribute("vo2") CommandVO vo){ // 바인딩 결과가 vo2라는 참조변수에 만들어짐 //1. ㅍㅏ라미터가(bno=0, title="제목", content="내용") 넘어온다 //2. CommandVO 타입에 객체 생성(vo) -> 자동바인딩 // vo(bno(0), title(제목), content(내용)) //3. vo2 참조변수에 저장 -> view page 포워딩 return "command/result"; // views/command/result.jsp } // JSP 방식 /*public String submit(HttpServletRequest request, HttpServletResponse response){ // 1. 파라미터 받기 // 2. vo 객체 바인딩 CommandVO vo = new CommandVO(); vo.setBno(Integer.parseInt(request.getParameter("bno"))); vo.setTitle(request.getParameter("title")); vo.setContent(request.getParameter("content")); // 3. key 생성 & 포워딩 request.setAttribute("vo2", vo); return "command/result"; // views/command/result.jsp }*/ //@RequestMapping(value="/param/userInfo.do") @RequestMapping("/param/userInfo.do") public ModelAndView param(@RequestParam("name") String name, // name, age // 문장을 캐스팅해서 변수에 넣어줌 @RequestParam(value="age", required=false, defaultValue="25") int age){ // required : 일종의 예외처리, false시 없어도 된다, defaultValue : 없을때 초기화 // name 필수 사항, age 없는 경우 예외 처리 //ModelAndView mav = new ModelAndView("param/result"); // 요런 생성자도 가능(다형성) ModelAndView mav = new ModelAndView(); mav.addObject("name",name); mav.addObject("age",age); mav.setViewName("param/result"); return mav; // views/param/result.jsp } @RequestMapping("/model.do") public String result(@RequestParam("op1") int op1, @RequestParam("op2") int op2, Model model) { model.addAttribute("result", (double)op1/op2); return "math/result"; // 넘어간 페이지에서 result로 호출해서 쓸수있게되는거겠지? } // 쿠키 @RequestMapping(value="/cookie/make.do") // get 방식이라 생략 public String make(HttpServletResponse response){ // 쿠키 생성 response.addCookie(new Cookie("userId", "HONGILDONG")); return "cookie/make"; // views/cookie/make.jsp } @RequestMapping("/cookie/view.do") // get 방식이라 생략 public ModelAndView view(@CookieValue(value="userId", defaultValue="0") String userId) { ModelAndView model = new ModelAndView("cookie/view");//jsp 정보 model.addObject("userId", userId); return model; // views/cookie/make.jsp } /* * @Model Attribute("참조변수") * - 객체 생성 결과 저장 변수 * - view page 포워딩 시 함께 전달됨 */ // 와 그니까 지금 이게 public void aa(@ModelAttribute("searchTypeList") String name) 형식이 메서드 전체를 싸고잇는거네 @ModelAttribute("searchTypeList") public List<SearchType> search(){ List<SearchType> list = new ArrayList<SearchType>(); list.add(new SearchType(1,"아케이드 게임")); list.add(new SearchType(2,"온라인 게임")); list.add(new SearchType(3,"닌텐도 게임")); return list; // searchTypeList 저장 } @RequestMapping(value="/select/main.do") public String main(){ return "select/main"; // views/select/main.jsp } @RequestMapping(value="/select/game.do", method=RequestMethod.POST) public String game(@ModelAttribute("search") SearchVO vo, Model model){ //model.addAttribute("search", arg1) //String name = null; //System.out.println("name size : "+name.length()); // 산술적 예외 //int result = 10 / 0; return "select/game"; } @ExceptionHandler(NullPointerException.class) public String handler(NullPointerException e){ return "error/null"; // null.jsp } @RequestMapping(value="/login.do",method=RequestMethod.GET) public String loginForm(){ return "exam/login"; } @RequestMapping(value="/login.do",method=RequestMethod.POST) public ModelAndView result(@RequestParam(value="id", required=false, defaultValue="입력없음") String id, @RequestParam(value="pwd", required=false, defaultValue="입력없음") String pwd, @RequestParam(value="name", required=false, defaultValue="입력없음") String name){ ModelAndView mav = new ModelAndView("exam/result"); mav.addObject("id",id); mav.addObject("pwd",pwd); mav.addObject("name",name); return mav; } @RequestMapping(value="/account/create.do",method=RequestMethod.POST) // post요청시 vo변수에 바로 매핑해서 account라는 참조변수로 create.jsp로 전달! EL태그${name}등으로 바로 쓸수있음 public String create(@ModelAttribute("account") AccountVO vo){ return "account/create"; }
간단한 MVC패턴은 chap06거에서 확인
'Web > Spring' 카테고리의 다른 글
주소에 패키지명 안따라오게 하려면 (0) | 2017.06.06 |
---|---|
Controller에서 Controller로 이동할때 (0) | 2017.05.11 |
스프링 핵심만 정리(ing) (0) | 2017.05.11 |
Simple Spring Maven에서 스프링 컨테이너 사용-2 (0) | 2017.03.12 |
Simple Spring Maven에서 스프링 컨테이너 사용-1 (0) | 2017.03.12 |
Comments