기본으로 이용할 Member dto 생성(getter/setter, tostring, 생성자메서드 오버라이딩 )
서비스 패키지 생성 후
ExamService 클래스 생성
getMemberInfo 메서드 생성
@Service //어노테이션 추가
public class ExamService {
public Member getMemberInfo(String memberId) {
Member member = new Member();
member.setMemberId("id00" + memberId);
member.setMemberPw("pw00" + memberId);
member.setMemberLevel("관리자");
member.setMemberAddr("전주시 덕진구 기린대로 446");
member.setMemberMobile("0637171008");
return member;
}
}
controller 패키지 생성 후
ExamController 클래스 생성 후
ExamService DI 주입
@Controller
@RequestMapping("/exam")
public class ExamController {
1. DI 필드 주입방식
@Autowired
private ExamService examService;
2. DI setter method 주입방식
private ExamService examService;
@Autowired
public void setExamService(ExamService examService) {
this.examService = examService; }
3. DI 생성자 method 주입방식
private ExamService examService;
//spring framwork v4.3 이후부터 @Autowired 생략 가능
public ExamController(ExamService examService) {
this.examService = examService;
}
}
@GetMapping 메서드 생성
//ExamController class에 @RequestMapping으로 ("/exam")을 매핑해뒀기 때문에 getmapping 경로 하나만 적을수 있게됨
@GetMapping("/exam1")
public String exam1(Model model) {
Member member = examService.getMemberInfo("1");
model.addAttribute("title", "ksmart42");
model.addAttribute("user", member);
return "exam/exam1";
}
view단 파일 생성
thymeleaf 라이브러리에 prefix,suffix로 미리 경로와 파일확장자가 정해져 있음 그래서 templates폴더 하위에 html확장자로 파일 생성하는 것...
thymeleaf 문법 - th:___="" - title은 없음 실행화면 보면 타이틀안나온걸 볼 수 있음 text로 해줘야함 - html 태그에 th:로 넣거나 - [[]] 이중대괄호 안에 넣어서 출력시켜야함 - thymeleaf로 바인딩된 객체에 .으로 접근할 수 있음
빌드
thymeleaf 리스트객체 바인딩
위에 만들어둔 ExamService 클래스에
getMemberList 메서드 생성
public List<Member> getMemberList(){
List<Member> membeList = new ArrayList<Member>();
Member member =null;
for(int i=1; i<10; i++) {
if(i%3 ==0) {
member = new Member("id00"+i, "pw00"+i, "구매자", "전주시 덕진구", "0101234123"+i);
}
if(i%3 ==1) {
member = new Member("id00"+i, "pw00"+i, "관리자", "전주시 완산구", "0101234123"+i);
}
if(i%3 ==2) {
member = new Member("id00"+i, "pw00"+i, "판매자", "전주시 덕진구", "0101234123"+i);
}
membeList.add(member);
}
return membeList;
}