Light Purple Pointer
게시물에 일련번호 추가하기
·
BACKEND/SpringBoot
html 수정
페이징
·
BACKEND/SpringBoot
drop table answer drop table question 으로 테이블 삭제함 @Autowired private QuestionService qService; for(int i =1; i 마지막으로 작성일시를 역순으로(desc)로 조회하게 수정할거임 QuestionService- getlist public Page getList(int page){ Pageable pageable = PageRequest.of(page, 10, Sort.by("createDate").descending()); //한 페이지에 10개 return this.qRepo.findAll(pageable); //모든 질문 리스트 } deata.domain Sort 작성일자로 내림차순 첫페이지는 300부터 나옴
에러 창 , 네브바 모듈화
·
BACKEND/SpringBoot
question_form.html, question_detail.html 에 에러 폼 변경 테스트해보기 네비게이션 모듈화 SBB 로그인 모든 페이지에 추가 하지만 화면이 작아졌을 때 오른쪽 위 토글 버튼이 눌러지지 않음 -> js가 없어서 그럼 아까 다운로드 받은 부트스트랩 폴더에서 해당 파일을 넣어줌 head에 추가 테스트하기 - 토글 버튼 누르면 내려오는지
답변(Answer) 유효성 검사 추가
·
BACKEND/SpringBoot
AnswerForm생성 package com.mysite.sbb.answer; import javax.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; @Getter @Setter public class AnswerForm { @NotBlank(message = "내용은 필수 항목입니다.") private String content; } AnswerController //답변 저장 @PostMapping("/create/{id}") //주소에 있는 변수 { }안에 넣기 public String createAnswer(Model model, @PathVariable("id") Integer id, @Valid Answe..
질문 등록 처리 및 유효성검사
·
BACKEND/SpringBoot
question_list 에 질문 등록하기 버튼 만들기 테이블 아래에 추가하기 질문 등록하기 QuestionController //질문 등록하기 @GetMapping("/create") public String questionCreate() { return "question_form"; } 질문등록 제목 내용 name=conetnet, subject로 넘어감 QuestionController //질문 등록 처리하기 @PostMapping("/create") public String questionCreate(@RequestParam String subject, @RequestParam String content) { return "redirect:/question/list"; //질문 저장 후 질문목록으..
부분 모듈화 ( th:fragment / th:replace )
·
BACKEND/SpringBoot
공통적으로 사용하는 부분들에 대해서는 모듈화를 하여 쉽게 적용할 수있다 . layout.html생성 를 include할거임 DOCTYPE html> Hello, sbb! question_list.html 과 question_detail 변경 적용하고 에러 안나는지 테스트해보기
질문 목록/상세보기 - 부트스트랩 적용
·
BACKEND/SpringBoot
https://getbootstrap.kr/docs/5.3/getting-started/download/ 다운로드 Bootstrap을 다운로드하여 컴파일된 CSS 및 JavaScript, 소스 코드를 얻거나 npm, RubyGems 등과 같은 즐겨쓰는 패키지 관리자를 사용해서 포함시키세요. getbootstrap.kr question_list -부트스트랩 적용 질문 목록 번호 제목 작성일시 테이블 항목으로 "번호"를 추가했다. 번호는 loop.count를 사용하여 표시했다. (개수 만큼 인덱스 부여) 그리고 날짜를 보기 좋게 출력하기 위해 타임리프의 #temporals.format 유틸리티를 사용했다. #temporals.format은 다음과 같이 사용한다. #temporals.format(날짜객체, 날..
스태틱 디렉터리와 스타일시트
·
BACKEND/SpringBoot
css랑 js도 vscode랑 연결할거임 css파일 만들기 테스트를 위해서 약간만 작성함 html 링크 추가 테스트하기 - 적용됨
답변 등록하기
·
BACKEND/SpringBoot
확장 프로그램 중에 code Spell Checker 은 영단어가 틀릴 경우 알려주는 프로그램임 답변 등록 폼을 만든다. action 의 @안의 주소에서 id값(변수)을 넣기 위해서 세 가지 방법정도가 있다. 1) __${question.id}__ 2)'/answer/create/'+${question.id} 3)|/answer/create/${question.id}| http://localhost:8080/answer/create/2 AnswerController 생성 package com.mysite.sbb.answer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype...
Question 서비스 생성 및 상세보기 페이지
·
BACKEND/SpringBoot
서비스가 필요한 이유 ​ 모듈화 예를들어 어떤 컨트롤러가 여러개의 리포지터리를 사용하여 데이터를 조회한후 가공하여 리턴한다고 가정해 보자. 이러한 기능을 서비스로 만들어 두면 컨트롤러에서는 해당 서비스를 호출하여 사용하면 된다. 하지만 서비스로 만들지 않고 컨트롤러에서 구현하려 한다면 해당 기능을 필요로 하는 모든 컨트롤러가 동일한 기능을 중복으로 구현해야 한다. 이러한 이유로 서비스는 모듈화를 위해서 필요하다. ​ 보안 컨트롤러는 리포지터리 없이 서비스를 통해서만 데이터베이스에 접근하도록 구현하는 것이 보안상 안전하다. 이렇게 하면 어떤 해커가 해킹을 통해 컨트롤러를 제어할 수 있게 되더라도 리포지터리에 직접 접근할 수는 없게 된다. ​ 엔티티 객체와 DTO 객체의 변환 우리가 작성한 Question,..