1. 프로젝트 생성
2. library 복사 (struts2, spring, ibatis, jstl)
3. src/struts.xml, src/struts.properties 파일 생성
4. WEB-INF/applicationContext.xml 파일 생성
5. WEB-INF/web.xml에 struts2, spring 설정 추가
6. META-INF/context.xml 파일 생성
7. action, dao, vo, service 패키지 생성
8. dao 패키지에 ibatis 매핑 파일 생성, WEB-INF/SqlMapConfig.xml 파일 생성
9. WEB-INF/applicationContext.xml에 dataSource 빈 생성, sqlMapClient 빈 생성
10. VO 객체, Dao 인터페이스, Service 인터페이스 생성
DaoImp 구현 클래스 생성
SqlMapClientDaoSupport 상속, Dao 인터페이스 implements
ServiceImp 구현 클래스 생성
Service 인터페이스 implements
Dao 구현 클래스를 저장할 변수 선언, setter 메서드 구현
11. WEB-INF/applicationContext.xml에
DaoImp 빈 생성 --- SqlMapClient 주입
ServiceImp 빈 생성 --- DaoImp 주입
설정이 완료 되면 12번부터 반복
12. ibatis 매핑 파일에 쿼리 설정
Dao 인터페이스에 메서드 선언
DaoImp 구현 클래스에 쿼리 실행용 메서드 구현
13. Service 인터페이스에 메서드 선언
ServiceImp 구현 클래스에 서비스 제공용 메서드 구현
14. XXXAction 구현
Service 구현 클래스를 전달받을 변수 선언, setter 생성
parameter값을 저장할 변수 선언, getter/setter
view에 전달할 값을 저장할 변수 선언, getter/setter
execute()메서드 구현
15. WEB-INF/applicationContext.xml에
XXXAction 빈 설정 --- Service 구현 인터페이스 주입
16. 뷰 페이지 생성
17. src/struts.xml에 url-액션-리절트 매핑
18. 웹브라우져에서 url 입력해서 확인
웹 개발 유용 태그
## 입력폼에 한글변환 금지, 붙여넣기 금지
ex)
<input name="" type="" style="ime-mode:disabled" onPaste="return false;">
add)
1. 영문만 입력가능 : style="ime-mode:disabled"
2. 한/영중 선택가능 : style="ime-mode:auto"
3. 디폴트 한글 : style="ime-mode:active"
4. 디폴트 영문 : style="ime-mode:inactive"
## 주소 안보이게 링크 onclick stype="cursor:hand" (IE용)
ex)
<a onclick="location.href='주소';" style="cursor:hand"> </a>
## 정규식 이용 input box에 숫자만 입력받기
ex)
function SetNum(obj){
val=obj.value;
re=/[^0-9]/gi;
obj.value=val.replace(re,"");
}
onkeyup='SetNum(this)' onblur='SetNum(this)'
## input box에서 엔터처리
ex)
onKeypress="javascript:if(event.keyCode==13) SearchIt();"
## 세자리에 콤마 찍는 스크립트
ex)
// 화폐단위 , 스크립트
function addcomma(str){
var len = str.length;
var s1 = "",s2 = "";
if(len <= 3)
return str;
else{
for(i = len-1 ; i >= 0; i--)
s1 += str.charAt(i);
for(i = len-1 ; i >= 0; i--){
s2 += s1.charAt(i);
if(i % 3 == 0 && i != 0) s2 += ",";
}
document.write(s2);
return s2;
}
}
## TD 라인제어
예)
<td style="word-break:break-all"> ☞ 정해진 TD 사이즈에 맞춰 개행됨
<td nowrap> ☞ 개행없이 모두 표시함