<< @ 어노테이션 >>
@MVC는 Controller 코드안에 어노테이션으로 설정함으로써
좀 더 편리하게 MVC 프로그래밍을 할 수 있다.
MVC(Model View Controller)
Model : 데이터(변수, 상수, 초기화 값 등)
View : 인터페이스요소(.jsp, .html 같은?)
Controller : 데이터와 인터페이스를 이어주는 다리역할(이벤트 처리)
@의 종류 설명 ★ @Controller 해당 클래스가 Controller임을 나타내기 위한 어노테이션 ★ @RequestMapping 요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션 ★ @RequestParam Controller 메소드의 파라미터와 웹요청 파라미터와 맵핑하기 위한 어노테이션 @ModelAttribute Controller 메소드의 파라미터나 리턴값을 Model 객체와 바인딩하기 위한 어노테이션 @SessionAttributes Model 객체를 세션에 저장하고 사용하기 위한 어노테이션 @RequestPart Multipart 요청의 경우, 웹요청 파라미터와 맵핑가능한 어노테이션 (egov 3.0, Spring 3.1.x부터 추가) @CommandMap Controller메소드의 파라미터를 Map형태로 받을 때 웹요청 파라미터와 맵핑(egov 3.0부터 추가) @ControllerAdvice Controller를 보조하는 어노테이션으로 Controller에서 쓰이는 공통기능들을 모듈화하여 전역으로 쓰기 위한 어노테이션
(egov 3.0, Spring 3.2.X부터 추가)
★ 무조건 쓰이면서 자주쓰이면서 알아야하는 @
@ 실제 프로젝트에서 사용예
// 아래 매핑된 이름대로 써줘야 여기까지 올 수 있다.
@RequestMapping(value = "/useTong.do")
// @RequestParam 없으면, 파라미터 값 Null 찍힘. 아무것도 안 들어있음.
// 리턴 타입 String!!
public String useTong(@RequestParam Map<String, Object> map, HttpServletRequest req, HttpServletResponse response, ModelMap modelMap) throws IOException {
// 아래는 실제 프로젝트에서 쓴 내용이니 무시해도 된다.
// 여기서부터
HttpSession session = req.getSession();
UserVO loginVo = (UserVO) session.getAttribute("logInVO");
String id = loginVo.getId();
cartCnt(req, id, modelMap);
map.put("id", id);
List<?> bhfInfoList = this.service.getAllBhfInfo(map);
modelMap.addAttribute("condition", map.get("condition"));
modelMap.addAttribute("bhfInfoList", bhfInfoList);
UserVO vo = service.selectKaka(id);
if (vo.getAdd1() == null) {
return "redirect:/KakaSignIn.do?id=" + vo.getId();
}
if (bhfInfoList.size() == 0) {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("<script>");
out.println("alert(\"집 근처에 매장이 없습니다\");");
out.println("history.back(-1) ");
out.println("</script>");
out.flush();
response.flushBuffer();
out.close();
}
// 여기까지
return "user/useTong";
}
※ 프로젝트 초기에 return 타입을 ModelAndView로 했었는 데 약간...올드한 느낌(?)이라는 현업자분의 소리를 듣고
String으로 전환 사실 둘다 전혀 이상하거나 안되는거 아니라 코딩하는 사람의 마음인 것 같다
'Language > SPRING' 카테고리의 다른 글
웹서버(WEB Server)와 WAS의 차이점 (0) | 2021.08.10 |
---|---|
Spring? 특징? 기능요소? (0) | 2021.08.09 |
POST 방식으로 값 넘기고 받기 (0) | 2021.07.27 |
lombok 설치 및 환경설정 정리, Log.info("") 사용하기 (0) | 2021.06.24 |
org.mybatis.spring.MyBatisSystemException 에러 (0) | 2021.06.23 |