대충만들어봣다.

 

이것의 쓰임새는 아무래도 onload에 무언가 이벤트를 추가할 필요성이 있는데 이 onload가 하나의 function이 아닌 여러개의 function이 돌아갈때 쓰이는것이겟다.

예를들면 left메뉴에 배너가 달려서 window.onload시 배너 function이 setInteval로 돌아가야하는데 나중에 컨텐츠 작업을 하면서 마찬가지로 window.onload돌아가야하는 이벤트가 있을경우 쓸모가 있다 하겠다.

 

삽질했다..

 

window.attachEvent

를 쓰면 되네 -_-

기존에 있는건 삭제 -_-

<script>
var a = "aaa()";
var b = "bbb()";
var windowOnload = new Array();
function aaa(){
 alert("야");
}
function bbb(){
 alert("호");
}

function ccc(talk){
 alert(talk);
}

var d = "바";


window.attachEvent("onload", aaa);

window.attachEvent("onload", bbb);

window.attachEvent("onload", new Function("ccc('가')"));
window.attachEvent("onload", new Function("ccc('"+d+"')"));
window.attachEvent("onload", new Function("ccc('다')"));

 


</script>

<body>
</body>

 

------------위 스크립트는 FF에서 안된다 ------------

그래서 아래와 같이 해준다...

 

function addEvent(object, event ,listener)
{
    if (object.addEventListener){
        object.addEventListener(event, listener, false);
    } else if (object.attachEvent){

        object.attachEvent('on' + event, listener);
    }
}
addEvent(window,'load',new Function("ccc('가')"));

-------------------2008년 4월 24일 수정 -------------

잘못알고 있었다.

위의 이벤트는 onload시가 아니라. 그냥 실행된것이라고 보면 된다.. 자바스크립트가 돌면서.. 하놔..

addEvent(window,'load',new Function("ccc('가')"));

위와 같이 되어 있는 이벤트는

 

addEvent(window,'load',function(){ccc('가');});

와 같이 하는것이 옳다..

 

그동안 낚이신 분들 지못미..

 

Posted by 삽지리
,

CalendarUtil은 기본적으로 Calendar를 기반으로 만들고 있는데

기본적인 날짜가 주어지고 Calendar의 set(int field, int value) 메쏘드를 이용하여

년,월,일을 별도로 세팅할 수 있게 하려고 했다.

벗뜨..

만약 2008년3월31일상태에서

Calendar c = Calendar.getInstance()

c.set(2008,2,31) // 월은 0이 1월이다.

c.set(Calendar.MONTH,1) //2월로 세팅

2월로 세팅할경우

Date형으로 바꾸고 포멧변환을 이용해서 String으로 변환하면 환산하면 2008년3월2일이된다.

 

java.text.SimpleDateFormat formatter =
            new java.text.SimpleDateFormat ("yyyyMMhh", java.util.Locale.KOREA);
 formatter.format(c.getTime()); 

 

대략난감해지는 상황..

이것은 비단 월만이 아니라 년도에도 해당된다.

이걸극복할 방법으로는 예를 들면 해당월의 일수나 해당년도의 일수를 구해서 계산을 통해 add()메쏘드를 이용해서

처리하는 방법이 있겠으나. 이것은 개발자마다 극히 주관적으로 생각할 수 있는 위험성이 있다고 판단되어 아예 년.월,일을 각각 세팅하는 메쏘드를 빼버렸다.

 

그리고 2개의 날짜를 계산하는것..

기본적으로 CalendarUtil는 내부에 Calendar 객체를 가지고 이것을 통해서 연산을 하고 날짜를 저장한다.

그런데..

추가로 날짜를 받아서 두 날짜의 차이를 구하면 원하는 차이값이 안나온다..

보통 사용돼는 방법이 2개의 값을 Date형으로 바꿔서 getTime()메쏘드를 이용해서 밀리초단위로 long형 데이터를 받아 이것을 비교하는 방법이다.

그런데 CalendarUtil내부 Calendar 객체는 이 long형 데이터 자체가 원하는 값이 나오지 않았다.

 

이유인 즉슨 CalendarUtil 생성자에서

 

this.calendar = Calendar.getInstance();   만으로 처리 했기떄문이다.

CalendarUtil 에서 내가 기본적으로 잡은 컨셉은 년월일에 대한 손쉬운 데이터 계산..

그런데 Calendar.getInstance();   했을경우

현재 시분초가 다들어간다..

그러니 나오는 데이터에 서 오차가 있을수밖에..

3월 13일 3시와 3월 14일 0시는 24시간의 차이가 없기때문에 날자차이가 1이 못되는 것이다..

그래서

 

this.calendar.clear(Calendar.HOUR);
  this.calendar.clear(Calendar.MINUTE);
  this.calendar.clear(Calendar.SECOND);
  this.calendar.clear(Calendar.MILLISECOND);

 

시분초를 다 없앴다..

Posted by 삽지리
,

util 을 만드는데 util에 대한 정의가 필요했다..

그래서 대충 아래와 같이 문서를 만들었지..

뭐 다 적은건 아니지만..

 

FileUtil   파일 컨트롤
    파일,디렉토리 copy,delete,move
    파일 디렉토리 검증 (유무, 해당 객체가 파일인지 디렉토리인지)
StringUtil   문자열 컨트롤과 암복호 지원
    각 암복호화 지원
    파일의 내용을 문자열로 얻기
    문자열을 일정길이 만큼만 보여주고 그 길이에 초과되는 문자열일 경우 특정문자를 덧붙여 보여줌.
CalendarUtil   날짜 컨트롤, DATE형의 데이터를 컨트롤  및 스트링으로 된 날짜 데이터를  DATE처럼 컨트롤
    데이터를 string형태로 받고 DATE처럼 컨트롤 가능하도록함
    한글 형식에 맞게 Date혹은 String 데이터를 변환시킨다.
XmlUtil   XML문서 컨트롤
ExcelUtil   엑셀문서 생성 및 다운로드, 데이터 컨트롤
ImageUtil   Thumbnail등의 이미지 컨트롤
    썸네일 이미지 생성
FtpUtil   FTP서버에 접속 파일을 가져오거나 업로드 한다.
    FTP 업로드 다운로드
HttpUtil   HTML 관련 유틸, 특문을 변환시키거나 개행문자의 변환을 담당한다.
    자주쓰는 문자열 변환등을 단순화시킨다.
CookieUtil   쿠키컨트롤
PagingUtil   페이징
    페이징계산
DownloadUtil   다운로드
    다운로드할 파일의 위치를 숨긴다.

 

허나 실제로 나와야했던건 다음과 같은 내용..

 

util.net.ftp

util.net.http

util.net.http.cookie

util.net.http.paging

util.document.xml

util.document.excel

util.document.hwp

util.string

 

이런식이였다.

이렇게 하는 이유는

각각의 유틸을 묶음으로써 interface를 사용할지 추상클래스를 사용할지에 대한 설계 디자인이 나올 수가 있다.

아무래도 좀더 체계적인 개발이 가능하겠지

인터넷을 뒤져바도 찾기힘든 지식들을 알게되는 이순간이 참 좋은것 같다.

 

 

 

Posted by 삽지리
,