일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TO_DATE
- eGov
- 과정평가형
- 오류
- html
- Java
- POI
- was
- javascript
- 태그
- jQuery
- CSS
- Database
- JVM
- 개념
- spring
- eGovFramework
- array
- Ajax
- Oracle
- select
- controller
- mybatis
- 암호화
- input
- 함수
- web.xml
- 배열
- json
- sql
- Today
- Total
web developer
[egov] @RequestMapping 속성 본문
@RequestMapping 어노테이션
요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션을 말한다.
@RequestMapping 어노테이션은 Controller 단에서 사용되고 있는데,
package egovframework.board.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class BoardController {
@RequestMapping(value="/SelectBoardList.do")
public String SelectBoardList() throws Exception {
return null;
}
}
DispatcherServlet이 Controller파일을 찾고, 논리적 주소가 맵핑된 메서드를 찾기 위해서는
@Controller와 @RequestMapping이 작성되어야 합니다.
@RequestMapping 어노테이션을 간략하게 살펴보면,
URL와 Controller 메소드의 매핑을 설정하는 어노테이션이며, URL 이외에도 다양한 속성을 지정할 수 있다.
URI 템플릿 기능을 이용하면 URL속의 값을 쉽게 얻어 올 수 있다.
1. String[] value : URL 패턴을 지정하는 속성이다.
String 배열로 여러개를 지정할 수 있으며, ANT 스타일의 와일드카드를 사용할 수 있다.
{}를 사용하는 URI 템플릿을 사용할 수도 있다.
1) 기본 형태
@RequestMapping(value="/boardList")
2) 'value=' 생략한 경우
@RequestMapping("/boardList")
3) 배열 : URL이 여러개인 경우
@RequestMapping("{/boardList", "/pdsList"})
@RequestMapping(value = {"/boardList", "/pdsList"})
value 값에 .do를 붙이는 이유는 web.xml파일의 <url-pattern> 설정 때문인데, .do로 명시된 논리적 주소를 처리하겠다는 의미입니다. *.do를 사용하지 않는 경우에는 논리적 주소만 명시하면 됩니다.
2. RequestMethod[] method : HTTP 요청 메소드값이 일치해야 맵핑이 이루어진다.
- URL만 설정 시에는 get/post 둘다 가능한 상태입니다.
- GET, POST, PUT, DELETE, OPTIONS, TRACE로 총 7개의 HTTP 메서드가 정의되어 있다.
1) get/post methd 설정한 경우
// GET
@RequestMapping(value = "/boardList", method= RequestMethod.GET)
public String executeGetOnly(...
// POST
@RequestMapping(value="/boardList", mehtod= RequestMethod.POST)
public String executePostOnly(...
2) static import 설정한 경우
import static org.springframework.web.bind.annotation.RequestMethod.*;
@RequestMapping(value = "/boardList", method= GET)
public String executeGetOnly(...
// POST
@RequestMapping(value="/boardList", mehtod= POST)
public String executePostOnly(...
3) Pathvariable로 파라미터 전송하기
@RequestMapping("/detail/{articleNumber}")
public ModelAndView detail(PathVariable int articleNumber) {
ModelAndView view = new ModelAndView();
view.setViewName("article/detail");
view.addObject("articleNumber", articleNumber);
return view;
}
@RequestMapping("/member/delete/{idx}")
public String del(@PathVariable("idx") int idx) {
deleteService.memberDelete(idx);
return "redirect:/member/memberList";
}
ex) delete?idx=12가 아닌 delete/12
3. String[] params : 요청 파라미터와 값으로도 구분 가능하다.
- 같은 URL이라도 요청 파라미터가 useYn=Y, useYn=N으로 구분할 수 있다.
- 즉, 요청 파라미터와 값으로도 구분할 수 있다.
- 또한, String 배열로 여러개를 지정할 수 있으며, 아래와 같이 사용 가능하다.
// abc?useYn=Y 일 경우 호출됨
@RequestMapping(value="/abc", params="useYn=Y")
// not equal도 가능
@RequestMapping(value="/abc", params="useYn!=Y")
// 값에 상관없이 파라미터에 useYn이 있을 경우 호출됨
@RequestMapping(value="/abc", parmas="useYn")
// 파라미터에 useYn이 없어야 호출됨
@RequestMapping(value="/abc", params="!useYn")
// HTTP Request에는 파라미터 myParam1이 myValue값을 가지고 있고, myParam2 파라미터가 있어야 하고, myParam3라는 파라미터는 없어야 한다.
@RequestMapping(params={“myParam1=myValue”, “myParam2”, ”!myParam3”})
4. String[] headers : 헤더 값으로 구분할 수 있다.
방식은 위의 String[] params와 비슷하다.
@RequestMapping(value="/post", headers="content-type=text/*")
출처 : https://heeestorys.tistory.com/350
출처 : https://joont92.github.io/spring/@RequestMapping/
'Framework > Egovframework [spring]' 카테고리의 다른 글
[egov] egov mvc 폴더 기본구성 [myBatis] (0) | 2022.02.17 |
---|---|
[egov] EgovMap이란? EgovMap으로 데이터 가져오기 (0) | 2022.02.17 |
[mybatis] <![CDATA[ '' ]]> 처리 / 요소 콘텐츠는 올바른 형식의 문자 데이터 또는 마크업으로 구성되어야 합니다. (0) | 2021.12.28 |
[egov] mybatis xml parameterType Class/TypeAlias 'vo' not found. (0) | 2021.12.17 |
[egov] oracle db 사용할 경우 수정할 사항 (0) | 2021.12.17 |