java |
Controller, Service, Servicelmpl, DAO, VO | |
VO Value Object |
계층건 데이터를 교환하는 객체 속성에 접근하기 위한 getter/setter 메서드를 써줘야함 SQL.xml와 VO.java의 연결점 : SQL은 Snake Case표기 / VO는 Camel Case표기 |
|
DAO Data Access Object |
DB의 data에 접근하는 객체이다 (데이터 조회,반환 역할을 하는데 그러기 위해서는 쿼리가 필요) DAO와 쿼리가 서로 매칭이 돼야함 |
|
jsp | comCodeList, comCodeInput, comCodeProcess | |
id는 겹치면 안됨 (고유 아이디) noticeVO를 dataVO로 바꿔둔 이유: 각 데이터 VO마다 이름이 다르니 통합하여 편의성을 높힌다 form태크 : <form:textarea readonly="true"> //로 하면 읽기만 가능한 텍스트창이 생성 jsp의 함수 this : element에 this를 담은후 console.log(element)로 this가 무슨 함수인지 확인 form1 : input data가 담기는 form / 상세정보 조회를 위해 form1이 필요 formFind : 수정, 입력 / seq값을 formFind에 넣어 전송한다 ~의 페이지를 클릭하여 그페이지에 머무를시 하위 카테고리가 펼쳐지게 유지하려면? setMenuGubun(" ") 함수명( )안에있는 this의 의미 tag안에서 event속성으로 함수를 호출할때 this는(ex: onclick="함수명(this);) 그 해당tag 자신을 가리킨다 본문에 글자수를 표기하고 싶을 때(ex: 0/4000 bytes) 글자를 입력될때 호출하는것이 아닌 페이지가 로드될때 호출한다 window.onload = function() 이용 우리가 들고다니는 hidden변수도 항상 확인 <form:hidden path="nowPage" /> <form:hidden path="mode" /> <!-- ////공통 --> <form:hidden path="searchGubun1" /> <form:hidden path="searchVal1" /> mode='MOD'일떄는 selectDetail쿼리 실행 mode='ADD'일떄는 insertData쿼리 실행 |
||
function()에 ${data.변수}를 쓸때는 '작은 따옴표'를 쓴다 유효성 검사 우선순위: 제목>본문>메인>노출 포커스(focus)는 script.common.JS에 정의되어있어 함수이름으로 가져다 쓸 수 있다.(function show_alert) |
||
xml / ORACLE |
쿼리문.xml, mybatis-config / ORACLE | |
대문자 표기 줄을 나눠서 작성 (AND 포함) 각 테이블에 별칭 항상 표기 AS 항상 표기 기호는 한칸씩 띄어쓰기 (ex: , > +) 왼쪽을 기준으로 줄 맞춰서 쓰기 불필요한 괄호() 생략하기 Insert문 구성 수정자 , 수정일은 인서트할떄 들어가지 않음 values 문자값을 넣을때 '작은 따옴표'를 씀 Insert into문을 쓸때는 테이블에 별칭 X INSERT 한번 test한 뒤 ROLLBACK; 실행 AS쓸때 영문은 "큰따옴표" 금지 데이터를 가져오는것은 SELECT 데이터를 변경하는것은 UPDATE 데이터를 널 |
DAO | 데이터 조회, 반환 역할 |
Service ServiceImpl |
메소드 정의 interface에서 상속받아 로직 구현, @Service("~~Service")로 정의 |
ADD / MOD | 신규등록 / 수정 |
① 화면에서 입력 버튼 클릭
② Controller로 이동(Controller 의 Service조회)
③ Service에서 data조회를 하기 위해 DAO호출
④ DAO안의 쿼리문.xml namespace, query id 조회 실행
⑤ 실행된 결과를 Service에 return
⑥ Service도 DAO에서 받은값을 Controller에 전달
⑦ Controller에서 변수들의 결과값이 VO에 저장됨
⑧ VO는 쿼리.xml 그리고 VO에 저장
⑨ 결과값을 result VO에 담아 넣고 dataVO에 전달
⑩ 화면에 전달할떄 column명에 따라 데이터가 저장
searchVO | 데이터를 담아옴 detailCodeInput.jsp(ADD)에 commonCode값을 받아올때 쿼리에서 조회로 받아오는개 아니다 기존 데이터르를 받는것이다 searchVO는 comCOdeList.jsp에서 보내온 데이터(commonCode, commonName)를 가지고 있다 <a href = "javascript:fn_input('MOD' , '${row.commonCode }');"> |
resultVO | 수정모드일때 selectDetail을 이용해 값을 '새로' 받아옴 detailCodeInput.jsp(MOD)에 commonCode 값을 받아올때 |
HTML
<div>
|
block요소 (layout 나누는 용도) |
<span> | inline요소 (딱 글자 부분만 나눔) |
▶ form테그 값을 지정
예시①<form1>태그안에 있는 ${detailCode}값은
= document.form1.detailCode
예시②<formFind>태그안에 있는 ${detailCode}값은
= document.formFind.detailCode
document.form1.변수1 | 변수1의 태그자체를 가르키는 것 |
document.form1.변수1.value | 변수1의 값을 가르키는 |
DEL, DELS | 삭제 DEL, DELS 값을 받아왔을때는 이미 글이 '삭제'된 후이 |
DELCHK, DELCHKS | 삭제가 아닌 '하위체크' |
form1 (dataVO) | 쿼리에서 조회한 data가 들어있음 페이지가 변할때마다 data가 바뀜 form1을 쓰는 이유: detail에서 input 페이지로 넘어갈때 formFind를 쓰면 searchVO에 있는 data들을 전부 가져가야 해서 양이 많음 근데 form1을 쓰면 PK값(data_num) 한개만 필요함 |
formFind (searchVO) | 기존 페이지(List.jsp)에서 부터 담겨있던 data가 들어가 있음 페이지가 바뀌어도 계속 기존 데이터들을 들고 다님 (ex: nowpage 같이 값을 유지해야 하는 데이터들이 사용) |
data를 submit할때 두 tag를 한꺼번에 submit()이 불가능하다 둘 중 1개의 tag만 submit이 가능하므로 만약 2개의 tag data가 필요할때는 form1에 있는 tag를 formFind에 넘겨준다 var form1 = documnet.form1; var formFind = documnet.formFind; form1.appendChild(formFind.nowPage); form1.appendChild(formFind.searchVal1); |
CSS tip
F12 개발자 도구 css에
display: flex를 넣고 옆에 생기는 무언가를 클릭하면 편하게 CSS를 고칠 수 있다