본문 바로가기
spring

@Controller, @RequestMapping

by 신방동불주먹 2022. 12. 21.

<@Controller>

 

  • @Controller 어노테이션이 사용 된 크래스는 자동으로 스프링의 객체 (Bean) 으로 등록

 

=> servlet-context.xml에 설정한 <context:component-scan> 태그를 이용하여 지정된 패키지를 스캔 하도록 되어있기 때문

 

  • 파라미터 자동 수집 (Request.getParameter() 이용하지 않음)

 

<@RequestMapping>

  • @RequestMapping은 @Controller 사용 시 함께 사용
  • 현재 클래스의 모든 메서드들의 기본적인 URL 경로가 된다
  • 클래스의 선언과 메서드 선언에 사용 할 수 있다
  • GET, POST 방식 모두를 지원해야 하는 경우에 배열로 처리해서 지정가능

 

http://localhost:8081/sample/ex01?name=a&age=1

@Controller
@RequestMapping("/sample/*") //sample 포함된 uri가 루트 밑으로 들어오면 얘가 동작
@Log4j
public class SampleController {
	@RequestMapping("")
	public void basic() {
		Log.info("basic!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
	}
	
	@GetMapping("ex01")
	public String ex01(SampleDTO dto) { //커맨드 객체
		
		log.info("" + dto);
		return "ex01";
	}

 

예시에서 /sample/aaa 등 /sample/ 경로로 들어온 모든 처리를 담당

 

	@GetMapping("ex02")
	public String ex02(@RequestParam("name") String name, @RequestParam("age") int age) { //request.getparameter와 같음
		
		log.info(name);
		log.info(age);
		
		return "ex02";
	}

 

  • @RequestParam : 파라미터로 사용되는 변수의 이름과 전달되는 파라미터의 이름이 다른경우 사용

 

 

	@GetMapping("ex02List")
	public String ex02List(@RequestParam("ids")ArrayList<String> ids) { 
    
		log.info("ids : " + ids);

		return "ex02List";
	}

 

  • 리스트, 배열처리

 

http://localhost:8081/sample/ex02List?ids=aaa&ids=bbb&ids=ccc

'spring' 카테고리의 다른 글

컨트롤러에서 뷰페이지로 데이터를 전달  (0) 2022.12.21
커맨드 객체 (Command Object )  (0) 2022.12.21
servlet 버전 변경  (0) 2022.12.20
JDBC연결 (HikariCP)  (0) 2022.12.20
MyBatis 설정  (0) 2022.12.20