스터디 개설

Yuri Lee·2020년 11월 19일
0

스터디 개발 뷰

study/templete.hmtl 만들기

google font 추가 https://fonts.google.com/?subset=korean

<link href="https://fonts.googleapis.com/css?family=Noto+Sans+KR:300,400,500&display=swap" rel="stylesheet"> 

css는 읽는 순서에 따라 달라진다. 내가 정의한 것을 가장 아래쪽에 넣었다. 의도적으로 힌 것이다. 제가 정의하는 쪽에서 다 오버라이딩 할 수 있도록! font-family를 적절하게 바꿔줄 수 있음. 부트스트랩에 있는 폰트를 재정의해서 사용할 수도 있다.

    @PostMapping("/new-study")
    public String newStudySubmit(@CurrentAccount Account account, @Valid StudyForm studyForm, Errors errors) { // 검증한 에러를 받아줌
        if (errors.hasErrors()) { //애러가 있으면 study/form을 다시 보여줌 
            return "study/form"; 
        }

        Study newStudy = studyService.createNewStudy(modelMapper.map(studyForm, Study.class), account); // studyForm에서 study로 데이터를 옮겨야 한다. 
        return "redirect:/study/" + URLEncoder.encode(newStudy.getPath(), StandardCharsets.UTF_8);
    }
  • studyform에 있는 data를Study 타입의 인스턴스를 만들어서 옮겨주면 된다. 그 다음에 account를 manager로 추가해야 한다.

  • study path 가 한글을 쓸 수 있다. 따라서 url 인코딩을 사용해야 한다.

  • StudyForm을 검증해야 한다. (title은 중복을 허용하기로 함, path만 확인하면 된다. )

  • service에서는 readonly를 주지 않을 것이다. 왜? 뭔가 데이터를 변경하는 작업을 서비스에 위임해서 트랜잭션 안에서 처리하기로 약속했기 때문!

  • @InitBinder: studyForm 을 받을 때 webDataBinder 타입을 받을 수 있고 webDataBinder 에다가 validators로 studyFormValidator를 추가해주면 , study를 추가할 때 path값이 중복되는지 확인을 할 것이다.

    @InitBinder("studyForm")
    public void studyFormInitBinder(WebDataBinder webDataBinder) {
        webDataBinder.addValidators(studyFormValidator);
    }

에디터

  • https://summernote.org/
  • 부트스트랩과 연동이 편리함.
  • 한국 개발자들의 오픈 소스.
  • npm install summernote

출처 : 인프런 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발

profile
Step by step goes a long way ✨

0개의 댓글