스프링의 컨트롤러 단에서 구현부가 동일하거나 거의 유사한 requestMapping을 여러 개 만들어야 하는 상황이 발생한다. 이때 중복코드를 줄이기 위해 하나의 requestMapping에서 여러 요청을 처리하는 방법이 있다.
1. 먼저 요청을 병렬로 받는다.
@RequestMapping(value = {"/boardUpdateForm", "/boardDelete"})
|
cs |
2. 그리고 아래 문법을 사용하면 요청이 들어오는 url을 뽑아주므로 처리와 return을 다르게 하고 중복코드를 줄일 수 있다.
(String)request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
|
cs |
3. 예시는 다음과 같다.
@RequestMapping(value = {"/boardUpdateForm", "/boardDelete"})
public String boardUpdateForm(HttpSession session, HttpServletRequest request, ModelMap modelMap) {
String requestUrl = (String)request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("boardNo", request.getParameter("boardNo"));
if(requestUrl.equals("boardDelete")) {
boardService.deleteBoard(paramMap);
return "redirect:/boardList";
} else {
modelMap.addAttribute("vo", boardService.selectBoardOne(paramMap));
return "boardForm";
}
}
|
cs |
'Programming > Java * Spring' 카테고리의 다른 글
[SpringBoot] JWT(Json Web Token) 활용한 인증 처리 (0) | 2023.04.15 |
---|---|
[Java] MyBatis 동적 쿼리 - trim, where, set (0) | 2022.06.27 |
[SpringBoot] No embedded stylesheet instruction for file 해결 방법 (out.xml 파일이 자동으로 생성되면서 서버가 켜지지 않음) (0) | 2019.11.18 |
[Spring Boot] Authorization Server(feat. Postman) (0) | 2019.07.10 |
MyBatis 사용 목적, 셋팅, Log4j(로그 출력) (0) | 2019.06.13 |