X-Internet 연동시 메시지 처리하기
From JCFWiKi
|
목차 |
[편집] 메시지 처리란
- 메시지 처리란 화면에서 입력, 저장 등 이벤트가 발생 것에 대한 정보가 화면의 바에 나타나도록 하는 것이다.
- JCF 공통모듈을 보면 입력, 저장 등 이벤트 발생할 때 마다 화면 하단의 바에 메시지가 나타나는 것을 볼 수 있다.
[편집] 사용 가이드
1. 데이터의 입력 시 메시지를 처리할 것이라면 postAdd 함수안에 메시지 처리함수를 넣는다.
function postAdd ()
{
setMessage(" 데이터를 입력합니다..", STATUS);
}
- 데이터의 삭제 시 메시지를 처리할 것이라면 postDelete 함수안에 메시지 처리함수를 넣는다.
function postDelete()
{
setMessage(" 데이터가 삭제되었습니다.", STATUS);
}
- 데이터의 저장 시 메시지를 처리할 것이라면 postSave 함수안에 메시지 처리함수를 넣는다.
function postSave()
{
setMessage(" 데이터가 저장되었습니다.", STATUS);
}
- 데이터의 조회 시 메시지를 처리할 것이라면 postFind 함수안에 메시지 처리함수를 넣는다.
function postFind()
{
setMessage(" 데이터가 조회되었습니다.", STATUS);
}
|
2, 메시지의 처리가 조회나 저장 시에 일어난다면 tranCallback 메소드 안에서 postFind, postSave 함수를 넣는다.
function trancallback(trid, ErrorCode, ErrorMsg )
{
if( trid == "FIND" )
{
if( ErrorCode < 0 )
alert("조회 실패 : " + ErrorMsg); // 실패시 Messasge처리
else
postFind();
}
}
function trancallback(trid, ErrorCode, ErrorMsg )
{
if( trid == "FIND" )
{
if( ErrorCode < 0 )
alert("조회 실패 : " + ErrorMsg); // 실패시 Messasge처리
else
postSave();
}
}
- 메시지 처리 함수(setMessage)의 호출은 시기는 요청하는 이벤트에 따라 다르게하여한다.
- 서버를 호출하지 않는 메소드 (입력, 삭제): 이벤트가 화면 안에서만 이루어지므로 이벤트가 실행될 때 같이 메시지가 나타나게 하면된다.(공통버튼함수에구현되있음)
- 서버를 호출하는 메소드 (저장, 조회) : 저장이라면 DB에 까지 제대로 반영이 된 후에, 조회라면 데이터를 다 가져온 후에 메시지가 나타나야 하므로 trancallback에서 호출한다.
[편집] 메시지 처리 구조
- 버튼들을 공통으로 사용할 하기 때문에 입력이나 저장 버튼이 있는 화면과 실제 이벤트가 발생하는 화면이 같지 않다.
- 버튼 클릭 이벤트 함수가 div로 가져온 화면(실제 이벤트가 발생되는 화면)의 메소드를 호출하는 형태이다.
[편집] 서버를 호출하지 않을 때(입력, 삭제 함수 일 때)
- 위의 그림은 입력버튼 클릭 시 발생하는 이벤트이다.
1. MenuFrame.xml 의 btnInsert_OnClick
function btnNew_OnClick(obj)
{
divDomain.menuAdd();
divDomain.postAdd(); //해당화면의 postDelete() 함수를 불러옴,
}
- 입력버튼을 클릭하면 셀추가하는 함수와 메시징을 처리하는 함수가 동시에 실행된다.
- 여기서 divDomain는 div에 있는 화면의 Id이다.즉, 실제 이벤트가 일어나는 화면의 Id이다.
[편집] 서버를 호출할 때(저장, 조회 함수 일 때)
- 위의 그림은 조회버튼 클릭 시 발생하는 이벤트의 순서이다.
1. MenuFrame.xml 의 btnRead_OnClick
- 조회 버튼 이벤트가 발생하면 div로 가져온 화면의 조회 함수를 호출한다.
function btnRead_OnClick(obj)
{
divDomain.menuFind();
}
2. menuFind() 함수
- Transaction을 통해 서버에 통신하여 데이터를 가져온다.
- tranCallback메소드를 호출한다.
function menuFind()
{
Transaction(
"FIND", //Callback에서 인식하는 svcId
"Common::user/findUsers.action",
"",
"ds_user=ds_user",
,
"tranCallback" );
}
3. tranCallback 메소드
- Transaction 이 잘 실행됬는지 확인하고 메시징 처리 함수를 호출한다.
function trancallback(trid, ErrorCode, ErrorMsg )
{
if( trid == "FIND" )
{
if( ErrorCode < 0 )
alert("조회 실패 : " + ErrorMsg); // 실패시 Messasge처리
else
postFind();
}
}
[편집] JCF_message.js
function setMessage( errMsg, showType )
{
if ( showType == ALERT ) {
alert( errMsg );
} else if ( showType == status ) {
stMsg.Value = errMsg;
} else if ( showType == confirm ) {
retVal = confirm( errMsg );
return retVal;
} else {
stMsg.Value = errMsg;
}
}
- JCF_message.js 는 setMessage 에 대한 함수가 있는 js 파일이다.
- 앞에서 setMessage를 호출할 때 setMessage(" 데이터가 조회되었습니다.", STATUS); 로 호출하였다.
- 여기서 앞의 값은 errMsg로 받아오고 뒤의 값은 showType로 받아온다.
- stMsg는 출력되는 메시지 바의 Id이다.
