20240216 Spring4 - autowired, 글쓰기 모달, mybatis) selectkey

Leafy·2024년 2월 16일
1

중앙_자바

목록 보기
40/76

오늘 할 것.

  • 모달 창 만들기
    (팝업뜨면서 배경 어두워지는 창. 구글광고같은...)
    직접 만들면 힘든데 부트스트랩으로 만들면 예쁘고 쉽다.

Spring 키면 나오는 로그
객체 생성.. 언제 뭐 구동하고...

spring에서 만들지만 was인 tomcat으로 복사되는 것(.metadata는 톰캣 가상 디렉터리).

Util.java

Component 어노테이션
서블릿때는 static 붙였지만 이번엔 아니다~

@Autowired (일일이!)

이러면 에러

이게 맞다

Util 임포트 주의~ (자바 다른 패키지에서도 많이 쓰는 말)


톰캣에 올려서 메모리에 올림

에러페이지 처리 (주소 유지)

이렇게 쓰면 화면이 에러페이지여도 주소는 그대로

에러페이지 처리 (주소 바꾸기)

매핑을 안하면 404가 뜬다 (web.xml에 error페이지 처리도 주석이 돼있다)


detail) 정상접근 처리

DB에 물어보기 -> 값 가져오기 -> 붙이기 -> 이동하기

  • DB에 물어보기 -> 값 가져오기
    이거는 무조건 service - dao - mybatis - mariadb까지 가야함.
  • 붙이기
    는 Model

원래는 util처리는 controller 말고 service에서 한다.

@Param("no") 타입 no

apache같은데 알아서 int로 넣어주는것같다 (형변환인듯??)

url에서 문자값(ABC) 넣으면 404가 뜬다. 알아서 넣어주는데 String이다? = 없는 것.

parameter 쓰는거 3가지
1. HttpServletRequest
2. @Param("no") 타입 no -> 이게 편할것이다~
3. DTO 넣어주는거 -> 글쓰기 때 할 것.

여러 개 쓸 때 더 써줘야.
public String detail(@Param("no") String no @Param("뭐뭐") int 뭐뭐) {}


mybatis mapper.xml

쿼리문 엔터치면 공백넣어주지만 그래도 뒤에 공백 넣는 걸로 하자 (정석)


js) history.back() / history.go()


게시판으로 가는거 location.href='./board' 대신


-2는 뒤로가기 두 번 누른 격
history.go(-1) <- 이거 보통 쓰겠지


글쓰기 모달(우왕..)

모달창 키는 버튼

<button type="button" class="btn btn-light" data-bs-toggle="modal" data-bs-target="#write">write</button>

한편 모달창은

<div class="modal" id="write">
  <h1>모달입니다.</h1>
</div>

모달창에 헤더, 바디 만들고 헤더에 닫기 버튼 달기

<!-- 글쓰기 모달 만들기 -->
<div class="modal" id="write">
  <div class="modal-dialog modal-xl">
    <div class="modal-content">
      <div class="modal-header">
        <h3 class="modal-title xi-pen-o">글쓰기 창 입니다.</h3>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body"></div>
    </div>
  </div>
</div>

data-bs <- 데이터바인딩같은... (bs 아마 부트스트랩 약자)


글쓰기 기능 (동적쿼리 시작)

mybatis) selectKey

글쓰고 자기가 쓴 글로 가려고!!!!!!!!!

https://yookeun.github.io/java/2014/07/11/mybatis-selectkey/
고급기능!!

selectKey = key 뽑아내는 것.
resultType="Integer" 뽑을 key의 타입 (integer라고 써도 되지만 Integer라고 했다)
keyProperty="board_no" key 컬럼명
order="AFTER" 해당 쿼리문 다음에 실행.
쿼리가 2개 실행된다~(원래 쿼리문 다음 selectKey)

order="BEFORE" 까지 추가해서 selectKey를 두번 쓰는건 안됨. selectKey는 하나씩만.

html5) required


required="required"
form에서 반드시 써야하는 입력창으로 만들어준다

1개의 댓글

comment-user-thumbnail
2024년 2월 16일

진짜 멋있어요 선생님 덕분에 스프링 혼자 만들수있게 됐습니당ㅎㅎㅎ 사랑해요

답글 달기