본문 바로가기
개발일기

학원 수업 47일차 221027

by hhana 2022. 12. 9.
  • 9-11

프로젝트명 : /springWeb05-design

(FaqDTO.java)(/springWeb05-design/src/main/java/com/green/nowon/domain/dto/faq/FaqDTO.java)
빌더패턴 특징?
https://mangkyu.tistory.com/163
클래스 내부에 이너클래스를 만들어줌
(/springWeb05-design/src/main/java/com/green/nowon/controller/CustomerController.java)
따라치기는 하는데 이게 지금 뭐하는 건지 왜 하는건지 이해가 안됨

(/springWeb05-design/src/test/java/com/green/nowon/SpringWeb05DesignApplicationTests.java)
JUnit Test?

@Test
void faq더미테스트() {
    log.debug(" >>> faqMapper : "+faqMapper);
    log.info(" >>> faqMapper : "+faqMapper);
    log.error(" >>> faqMapper : "+faqMapper);
}



디버그가 안뜰때 설정
(/springWeb05-design/src/main/resources/application.yml)

logging:
  level:
    com:
      green:
        nowon: debug

 

(/springWeb05-design/src/test/java/com/green/nowon/SpringWeb05DesignApplicationTests.java)

//java @since 1.8
IntStream.rangeClosed(1, 10000).forEach(i->{
    FaqDTO dto=FaqDTO.builder() //빌더클래스 생성
    .division("use").question("질문-쇼핑몰이용-"+i).answer("답변-쇼핑몰이용"+i)
    .build(); //FaqDTO객체생성
    faqMapper.save(dto);
});

 

 

  • 11-12

고객센터페이지 디자인 다시하는 중
CSS filter Property
https://www.w3schools.com/CSSref/css3_pr_filter.php
이미지 태그에서 적용 가능

 

 

  • 12-1

(/springWeb05-design/src/main/java/com/green/nowon/domain/mapper/FaqMapper.java)

 

 

  • 2-3

- thymeleaf 플러그인 설치
Help > Elipse Marketplace
이클립스(마켓플레이스 맨 왼쪽)에서 thymeleaf 검색하여 설치

충돌하여 설치가 안된다면
https://www.thymeleaf.org/ecosystem.html

플러그인 설치방법 있음
https://github.com/thymeleaf/thymeleaf-extras-eclipse-plugin
https://www.thymeleaf.org/eclipse-plugin-update-site/
In Eclipse, go to Help >> Install New Software... then enter this update site URL (should be http://www.thymeleaf.org/eclipse-plugin-update-site/).
Eclipse should then pick up the plugin to install. 

설치완료되면 프로젝트 우클릭 > Configure > Add Thymeleaf Nature 눌러주면 됨
컨트롤+스페이스바 누르면 제안기능 사용가능
충돌 이슈 있음 무조건 되는거 아님 ㅠ
자바 11버전에서 안된대(컴파일버전이 17이어서 안됨)
--해결책? eclipse폴더의 eclipse.ini파일 편집! 맨 아래에 아래 줄 넣어줘
--add-opens=java.base/java.lang=ALL-UNNAMED

[Solution] -> --add-opens=java.base/java.lang=ALL-UNNAMED in eclipse.ini
참고 https://github.com/thymeleaf/thymeleaf-extras-eclipse-plugin/issues/110
Eclipse Thymeleaf plugin throws exception when using Ctrl+Space #110

쿼리 스트링 파라미터
https://velog.io/@gth1123/%EC%BF%BC%EB%A6%AC-%EC%8A%A4%ED%8A%B8%EB%A7%81Query-string-URL-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0

홈>고객센터페이지에 오면 등록된 문의글을 보여줄거야!
1번부터 10번까지를 한번에! 기능 구현

 

  • 3-4

고객센터 faq 리스트 페이지별로 볼 수 있게 만드는 중(한 페이지에 글 10개씩 length=10)

Numbers
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#numbers
${#numbers.sequence(from,to)}

 

 

  • 4-5

(/springWeb05-design/src/main/java/com/green/nowon/service/impl/CustomerServiceProcess.java)

@Override
public void faqAll(Model model, int page) {
    //if (page=1) {int from=1, int to=10};
    //if (page=2) {int from=11, int to=20};
    int length = 10; //페이지당 보여줄 개수
    int to = page*length;
    int from = to-length+1;

    //페이지계산
    //총 게시글 수
    int tot = mapper.countAll();
    System.out.println("faq의 총 개수 : "+tot);

    int pageTotal = tot/length;
    // if(나머지가 있으면) { pageTotal++; }
    if(!(pageTotal==0)) { //if(pageTotal!=0)
		pageTotal++;
    }

    //page=1, pGroup=1, pFrom=1, pTo=5
    //page=2, pGroup=1, pFrom=1, pTo=5
    //page=3, pGroup=1, pFrom=1, pTo=5
    //page=4, pGroup=1, pFrom=1, pTo=5
    //page=5, pGroup=1, pFrom=1, pTo=5
    //page=6, pGroup=2, pFrom=6, pTo=10
    //page=7, pGroup=2, pFrom=6, pTo=10 ...
    int pLength = 5; //페이지 그룹에 들어가는 글의 개수
    int pGroup = page/pLength;
    if(page%pLength != 0)  pGroup++; // % 나머지계산
    //page start~end -> pGroup=1 
    //page 1~5 -> pGroup=1
    //page 6~10 -> pGroup=2
    //page 11~15 -> pGroup=3

    int end = pGroup*pLength;
    int start = end-pLength+1;

    System.out.println("총페이지수 : "+pageTotal);

    model.addAttribute("list", mapper.faqAll(from, to));
    model.addAttribute("pageTot",pageTotal);
    model.addAttribute("pageStart", start);
    model.addAttribute("pageEnd", end);
}

 

Prev Sign, Next Sign 만들기
(/springWeb05-design/src/main/resources/templates/customer/front.html)

 

 

  • 5-6

4.10 Comparators and Equality
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#comparators-and-equality
A simpler alternative may be using textual aliases that exist for some of these operators: gt (>), lt (<), ge (>=), le (<=), not (!). Also eq (==), neq/ne (!=).

페이지 시작과 끝에서 <, > 표시 없애기

<div class="paging">
    <ol class="flex center">
        <!-- Prev Sign -->
        <li th:if="${pageStart ne 1}"> <!-- ne(!=) -->
       		<a th:href="|/customers/home?page=${pageStart-1}|">&lt;</a>
        </li>
        <!-- pageStart ~ pageEnd 반복 -->
        <li th:each="pageNo:${#numbers.sequence(pageStart,pageEnd)}">
        	<a th:href="|/customers/home?page=${pageNo}|">[[${pageNo}]]</a>
        </li>
        <!-- Next Sign -->
        <li th:if="${pageEnd < pageTot}">
        	<a th:href="|/customers/home?page=${pageEnd+1}|">&gt;</a>
        </li>
    </ol>
<div>



첫페이지로<<, 마지막페이지로>> 표시 만들기

    <!-- 첫 페이지로 -->
    <li>
        <a href="/customers/home?page=1">&lt;&lt;</a>
    </li>
    <!-- 마지막 페이지로 -->
    <li>
        <a th:href="|/customers/home?page=${pageTot}|">&gt;&gt;</a>
    </li>

 

(/springWeb05-design/src/main/java/com/green/nowon/utils/PageDTO.java)
리스트 페이지 구현에 필요한 계산식들 여기에 모아두자

'개발일기' 카테고리의 다른 글

학원 수업 51일차 221102  (0) 2023.01.10
학원 수업 50일차 221101  (0) 2023.01.04
학원 수업 49일차 221031  (0) 2022.12.13
학원 수업 48일차 221028  (0) 2022.12.12
학원 수업 46일차 221026  (0) 2022.12.07
학원 수업 45일차 221025  (0) 2022.12.04
학원 수업 44일차 221024  (0) 2022.11.28
학원 수업 43일차 221021  (0) 2022.11.28

댓글