Struts2 기반에서 Ajax를 사용해 Json으로 결과값을 받을 때,

같은 메소드가 두 번 호출된다거나, 호출하지 않은 메소드도 막 돌 때가 있다.

이거 참 골치아픈 문제였는데 외국의 어느 형님이 명쾌하게 답변을 내려주셨다.




찬양하여라!!


요는 Json 플러그인은 Action에 get으로 시작하는 메소드를 모조리 읽을 수 있으니 이름 바까라.



출처 : https://stackoverflow.com/questions/6061709/struts2-action-being-called-twice-if-result-type-is-json?answertab=votes#tab-top


Posted by 좀모씨

댓글을 달아 주세요


var xmlHttp;

function srvTime() {

if (window.XMLHttpRequest) {// 분기하지 않으면 IE에서만 작동된다.

xmlHttp = new XMLHttpRequest(); // IE 7.0 이상, 크롬, 파이어폭스 등

xmlHttp.open('HEAD', window.location.href.toString(), false);

xmlHttp.setRequestHeader("Content-Type", "text/html");

xmlHttp.send('');

return xmlHttp.getResponseHeader("Date");

} else if (window.ActiveXObject) {

xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');

xmlHttp.open('HEAD', window.location.href.toString(), false);

xmlHttp.setRequestHeader("Content-Type", "text/html");

xmlHttp.send('');

return xmlHttp.getResponseHeader("Date");

}

}

var st = srvTime();

var date = new Date(st);

var today = date.getFullYear() + addZero(date.getMonth() + 1)

+ addZero(date.getDate());


function addZero(n) {

return n < 10 ? "0" + n : n;

}





Posted by 좀모씨

댓글을 달아 주세요

출처 : http://angeleyes.tistory.com/201


-- div 안이 아닌 전체에서 구하려면 currentObj의 offset을 빼면 된다.


<script language="JavaScript">

<!--


function getMousePosition(evt, currentObj){

var x, y;


if(evt.pageX){

x = evt.pageX - currentObj.offsetLeft;

y = evt.pageY - currentObj.offsetTop;

}

else if (evt.clientX){

x = evt.clientX + document.body.scrollLeft - document.body.clientLeft - currentObj.offsetLeft;

y = evt.clientY + document.body.scrollTop - document.body.clientTop - currentObj.offsetTop;

}


if(document.body.parentElement && document.body.parentElement.clientLeft){

var b = document.body.parentElement;

x += b.scrollLeft - b.clientLeft;

y += b.scrollTop - b.clientTop;

}


alert(x + ',' + y);


return [x,y];

}

// --> 

</script>


<div onclick="getMousePosition(event, this)" style="border:solid 1px black;">

your protected content

<br>

Click here..

</div>



Posted by 좀모씨

댓글을 달아 주세요


http://www.innocia.com/smartPop/


짱조움

Posted by 좀모씨

댓글을 달아 주세요


이번엔 참 웃기는 문제였다.

테이블 데이터를 엑셀로 다운로드 하는데, 특정 검색조건 하에서만 한글이 깨진다....

로컬 테스트시에는 안깨진다. 운영서버에서만 깨진다. 다 깨지는 것도 아니고 특정 조건일 때만!


결국, 헤더 문제였다.


response.setHeader("Content-Disposition", "attachment;filename=" + xls_file_name + ".xls;");

response.setHeader("Content-Description", "JSP Generated Data"); 

response.setContentType("application/vnd.ms-excel;charset=EUC-KR");


이렇게 코딩이 되어 있던 걸


response.setHeader("Content-type", "application/vnd.ms-excel; charset=euc-kr"); 

response.setHeader("Content-Disposition", "attachment;filename=" + xls_file_name + ".xls;");

response.setHeader("Content-Description", "JSP Generated Data");


이렇게 바꾸고,


out.print("<meta http-equiv=\"Content-Type\" content=\"application/vnd.ms-excel; charset=euc-kr\">");


HTML 생성시 맨 윗줄에 meta를 추가해 주었다.

잘 된다.

망할 euc-kr.....



참고. 

http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=268421&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%BF%A2%BC%BF+%C7%D1%B1%DB&sop=and


http://ggoreb.tistory.com/177

Posted by 좀모씨

댓글을 달아 주세요


역시나 IE는 참 이뻐할 수가 없는 브라우저.

z-index를 주어도 div가 뒤죽박죽 되는 경우가 생긴다.

다른 브라우저는 안그렇다고!


그럴 때는 페이지 맨 윗줄에


<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 


넣어주자.

그냥 해결됨.


일단 IE10에서만 테스트 해봤는데 ... 나머지 혹시 해보실 분들은 피드백 좀.


참고. http://stackoverflow.com/questions/16394848/z-index-in-ie-10




Posted by 좀모씨

댓글을 달아 주세요


http://manggagi.tistory.com/11



이것저것 다 해봐도 도저히 안돼서 골머리 썩다가 엄청난 꼼수를 발견!


두 번 인코딩이라니.


내 경우는 서버쪽에서 두 번 디코딩까지 해서 해결.


한번만 해서는 안되더라고요...

Posted by 좀모씨

댓글을 달아 주세요

========================================
http://aaa.com/a.jsp
========================================
<div class="popup_content">
  <object data="http://bbb.com/b.jsp?gcode=bbb" width="900" height="740" type="text/html" title="bbbb"></object>
</div>

 

 

Posted by 좀모씨

댓글을 달아 주세요

org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly

 

apache-commons-fileupload 를 이용해서 파일 업로드 하는데 뜬금없이 떨어진 에러

하루를 꼬박 고생하다가 원인을 알았다.

 

팝업창에서 업로드를 하는데, 용량이 조금 큰 파일들을 업로드 하면 에러가 떨어진 상황.

그런데 파일 용량 제한도 아니고, 도무지 답이 없던 찰나...

 

파일스트림이 서버에 다 기록되기 전에 팝업창을 닫아버린 것.... (  ' ');;;;

아마도 쓰레드 관련 설정 문제인듯 한데....보통은 창이 닫혀도 쓰레드로 돌아가야 정상인데...

 

아하하하....

액션단에서 스트림과 트랜잭션 전부 처리한 후에 메시지를 리턴받아서 jsp 페이지에서 스크립트 처리하는 습관을 들이자. 안그럼 쌩고생한다....

 

 

[ 참고 : http://code.google.com/p/daumopeneditor/issues/detail?id=458 ]

Posted by 좀모씨

댓글을 달아 주세요

1. AnyClick : 비러머글 보안솔루션(이라 쓰고 바이러스라 읽음) 제거
   - 안전모드로 부팅
   - C:\programFiles\UNETSystem 폴더 삭제
   - 리붓
   - C:\windows\system32\AnyInstall.log 참조하여 system32의 dll파일과 registry 삭제(※주의)
     - 로그보고 레지스트리 삭제하기 귀찮으면 AnyClick으로 검색하여 키를 지워줘도 무방

2. ClientRSCDetect.exe : 비러머글 USB 차단프로그램(이라 쓰고 바이러스라 읽음) 제거
   - processExplorer 다운로드


   - Company Name 으로 정렬하여 nTrack System 찾음(이런 샤바랄라 같은 회사)
   - ClientRSCDetect.exe, rscdetect.exe, rscmgr.exe, nTrackerAutoRun.exe 선택
     -> 마우스 우클릭 -> suspend
   - 탐색기에서 C:\windows\system32 열고
     -> ctrlrsc.dll 삭제

     -> 
nTrackerAutoRun.exe 프로세스 kill -> 탐색기에서 삭제
     -> 
ClientRSCDetect.exe 프로세스 kill -> 탐색기에서 삭제
     -> 
rscdetect.exe 프로세스 kill -> 탐색기에서 삭제
     -> 
rscmgr.exe 프로세스 kill -> 탐색기에서 삭제 
     -> RSCPrtMon.exe 탐색기에서 삭제
     -> RSCSysLock.exe 탐색기에서 삭제
     -> RSCUpgrade.exe 탐색기에서 삭제

     

- 끝 -

ps. 제발 uninstall 좀 지원해라 잡것들아. 청사만 한 번 들어갔다 오면 아주 삽질을 해야 돼서 일이 안된다. 무슨 놈의 보안솔루션이 바이러스보다 더 지독하냐. 가볍기나 하면 말을 안해요. CPU, 리소스 지멋대로 처묵하고 이런 개썅썅바 같은.
Posted by 좀모씨

댓글을 달아 주세요

이전버튼 1 2 3 이전버튼

블로그 이미지
Under Construction
좀모씨
Yesterday2
Today7
Total231,330

달력

 « |  » 2018.06
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

최근에 달린 댓글

최근에 받은 트랙백

글 보관함