컨트롤러에서 서비스를 부른다
서비스 구현체는 서비스어노테이션을 붙인다



오늘 스프링 설정을 하느라 약간 정신이 없었다....
@Controller
//얘는 컨트롤러야
@RequestMapping("/sample/*")
//이런 요청을 처리해
@Log4j
public class SampleController {
//거기서 또 나눠서 처리해
@RequestMapping("/basic")
public void basic() {
log.info("basic.......") ;
}
@RequestMapping("/ex01")
public String ex01(SampleDTO dto) {
//맴버변수랑 이름이 같으면 파라메타가 자동으로 들어가융
// ex01?name=aaa&age=11
log.info(" " + dto);
return "ex01";
//같은이름의 jsp파일을 불러냄
}
@RequestMapping("/ex02")
//맴버변수랑 이름이 다르면 @RequestParam를 사용해요
public String ex02(@RequestParam("str") String name, @RequestParam("num")int age) {
// ex02?str=aaa&num=10
log.info("name : "+ name);
log.info("age : "+ age);
return "ex02";
}
@RequestMapping("/ex02List")
public String ex02List(@RequestParam("ids")ArrayList<String> ids) {
// ex02List?ids=aa&ids=bbb&ids=cc
log.info("ids : "+ids);
return "ex02List";
}
@RequestMapping("/ex02Array")
public String ex02Array(@RequestParam("ids")String[] ids) {
// /ex02Array?ids=aa&ids=bbb&ids=cccc
log.info("ids : "+Arrays.toString(ids));
return "ex02List";
}
@RequestMapping("/ex04")
public String ex04(SampleDTO dto, @ModelAttribute("page") int page) {
// ex04?name=bbb&age=20&page=1&str=마끄리마끄리
// @ModelAttribute("page") 안쓰면 param으로 받아오고 쓰면 걍 받아올수있다.
// SampleDTO dto < 커맨드개체
// 내가 받는다고 안해도 페이지에 받아오는 내용이 있으면 값이 간다.여기는 안들어오고..
String str="";
log.info("dto : "+dto);
log.info("str : "+str);
log.info("page : "+page);
return "/sample/ex04";
}
@RequestMapping("/ex05")
public String ex05(RedirectAttributes rttr) {
log.info("ex05....................");
// return "/sample/ex05_1";
//페이지이름
rttr.addAttribute("data","aaa");
// 주소창에 ex05_1?data=aaa 하고 데이터가 간다
// ${param.data}로 받을 수 있다
// 주소창에 값이 있어서 새로고침해도 데이터가 남아 있다
rttr.addFlashAttribute("data2","bbb");
// 주소에 없이 데이터가 간다
// ${data2}로 받을 수 있다.
// 주소창에 값이 없어서 새로고침하면 데이터가 사라진다
return "redirect:/sample/ex05_1";
//리다이렉트를 붙이니까 @RequestMapping("/ex05") 처럼 ex05_1로 감
}
@RequestMapping("/ex05_1")
public void ex05_1() {
log.info("ex05_1ex05_1ex05_1ex05_1");
}
@GetMapping("/ex06")
//get요청만 처리합니다.
public @ResponseBody SampleDTO ex06() {
// SampleDTO를 보내줌
log.info("ex06.....................");
SampleDTO dto = new SampleDTO();
dto.setName("둘리");
dto.setAge(10);
return dto;
}
}
보이드형식이라 form.jsp를 부를거다
@RequestMapping("/form")
public void form() {
log.info("폼입니다.");
}
form.jsp
<form action="result" method="post">
id <input type="text" name="id"><br>
pw <input type="password" name="pw"><br>
name <input type="text" name="name"><br>
tel <input type="text" name="tel"><br>
<input type="submit" value="전송">
</form>
result페이지 result(SampleDTO dto)를 넣어줘서
${sampleDTO.id}로 받아올 수 있다
@RequestMapping("/result")
public void result(SampleDTO dto) {
}
<h1>파람</h1>
${param.id}
${param.pw}
${param.name}
${param.tel}
<h1>SampleDTO</h1>
${sampleDTO.id}
${sampleDTO.pw}
${sampleDTO.name}
${sampleDTO.tel}
dto를 addAttribute해서 보냄
@RequestMapping("/e")
public String e (SampleDTO dto, Model model) {
model.addAttribute("dto",dto);
return "/sample/result";
}