출처 : http://dffect.cafe24.com/blog/

1. VC2005 이상의 툴이라면(아마 VS2003도 마찬가지일 듯) 다이얼로그 클래스를 선택하고 Properties 창에서 Overrides 아이콘을 선택한다.

2. 스크롤을 죽 내리다 보면 PreTranslateMessage 함수가 보일텐데 이 함수를 추가해 준다.

3. 아래와 같은 코드를 작성한다. (여기에서는 ESC와 엔터키만 처리하였다)
 BOOL CCherryRadioDlg::PreTranslateMessage(MSG* pMsg)
{
    // ESC 키
    if((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_ESCAPE))
    {
        // 여기에 원하는 동작의 코드를 삽입
        return true;
    }

    // 엔터키
    if((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_RETURN))
    {
        // 여기에 원하는 동작의 코드를 삽입
        return true;
    }
    return CDialog::PreTranslateMessage(pMsg);
}


VS2005와 VS2008에서 ParameterType.Value.length is null or not Object와 같은 오류 메시지를 띄운다면..
아래의 방법으로 해결 가능.


요약 :
1. 레지스트리 에디터(regedit)로 아래의 주소로 이동
  주소 : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Zones
2. 여기에  "1000"이라는 이름으로 key를 생성
3. 1000 이라는  key 하위에 DWORD 하나를 추가
  이름 : 1207
  타입 : 위에 적은 것처럼 DWORD
  데이터 : 0x000000 (그냥 0 하나만 넣으면 자동으로 변환)
4. VS2005, VS2008을 재시작

처음엔 관리자 권한 때문에 이런 문제가 발생하는 줄 알았으나 익스플로러 8로 인하여 생기는 문제라고 한다.
동적으로 페이지를 구성하기 위하여 innerHTML을 사용하게 되는데,
FF 계열은 문제가 없으나 IE 계열에서 문제가 발생한다.
만일 innerHTML로 대입하려는 문자열에 form 태그가 존재한다면 innerHTML은 동작하지 않는다.

var oDiv = document.getElementById("testdiv");
oDiv.innerHTML = "<form><input type="text"></form>";  // 오류 발생
oDiv.innerHTML = "<input type="text">";                        // 정상

회피할 수 있는 방법은 없다.
innerHTML로 oDiv 객체 안에 다른 객체를 넣어서 그 객체의 innerHTML을 하더라도 오류가 발생한다.
import java.util.Locale;
import java.util.ResourceBundel;
위와 같이 먼저 사용하는 것들을 import.

ResourceBundel rb = ResourceBundel.getBundel("파일명", Locale.getDefault());
위와 같이 resourcebundel을 선언해 준다.
파일명은 classes 폴더를 기준으로 작성하면 된다.
예를들어 classes 디렉토리 아래 lang이란 폴더에 lang.properties라는 파일로 국제화를 제공한다면,
/lang/lang으로 적어주면 된다.
classes 디렉토리 상위에도 작성 가능한지 여부는 모르겠다.

MyException(new String(rb.getString("board.name").getBytes("8859_1"), "KSC5601"));
이런식으로 처리하면 한글 출력도 문제 없다.

내 환경 : properties 파일은 unix 파일로 되어 있고 서비스는 utf-8을 제공한다.
아래와 같은 메시지가 출력 된다면...

javax.servlet.ServletException:  
--- The error occurred in /sql/board.postgresql.xml. 
--- The error occurred while applying a parameter map. 
--- Check the ArticleProperties. 
--- Check the parameter mapping for the 'idnum' property. 
--- Cause: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
com.lmsdev.core.BaseServlet.doPost(BaseServlet.java:40)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

ArticleProperties와 연결된 클래스에서 모든 변수에 값이 제대로 입력 되었는지 확인해 봐야 한다.

+ Recent posts