레이블이 JSP인 게시물을 표시합니다. 모든 게시물 표시
레이블이 JSP인 게시물을 표시합니다. 모든 게시물 표시

2017년 7월 6일 목요일

StringUtils의 isEmpty, isBlank 분석.

자바에서 Null 포함 빈값을 체크 할 때, StringUtils의 isEmpty 나 isBlank를 사용한다.
isEmpty는 "", null 일 경우 true를 리턴한다.
isBlank는 "", null, " " 일 경우 true를 리턴한다.

해당 메소드가 어떻게 동작하는 지 알아 봤다.

소스
isEmpty가 동작하는 방식은 간단하다.
        public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}

null 이거나, length 가 0 일경우를 체크 한다.

 

 

isBlank는 조금 더 복잡하다.
        public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}

첫번째는 isEmpty와 같지만 스페이스를 체크하기 위해 for문을 돈다.

 

 

간혹 StringUtils 라이브러리가 없고, 추가 할 수 없는 경우 참고 하면 좋을 것 같다.

2015년 5월 21일 목요일

java mail 첨부파일 이름 긴 경우 문제

첨부파일이 한글일 경우를 감안해서 보통 아래와 같이 쓴다.
bodyPart.setFileName( MimeUtility.encodeText(fileName, "UTF-8", "B"));

그러나 첨부파일 이름이 긴경우 제대로 인식이 안되고 아래와 같이 이름이 적용된다.

=?UTF-8?B?7IKs67iM67CA65+sXyjrqoUp6rCV7KeE7KO866WYKOyghOuCqClf?= =?UTF-8?B?MjAxNTA1MTJf6rGw656Y66qF7IS47IScLnBkZg==?=

해결책은 헤더값을 직접 지정하였습니다.
setFileName 을 안쓰고 직접 헤더 추가.
bodyPart.setDisposition("attachment; filename=\"" + MimeUtility.encodeText(fileName, "UTF-8", "B") + "\"");
bodyPart.setHeader("Content-Type", "application/pdf;name=\"" + MimeUtility.encodeText(fileName, "UTF-8", "B") + "\"");

2013년 9월 11일 수요일

CreateProcess error=2

외부 프로그램시 아래의 에러 발생.

CreateProcess error=2 파일이나 디렉토리 경로가 틀렸을때 나는 에러.

 

java.io.IOException: Cannot run program " C:\JavaDE\WebStie\someProgram.exe": CreateProcess error=2, ??d?? Æ???; ?; ¼? ¾ø

 

대충 보면 모르는데, 저기 C: 시작하는 부분 앞에 스페이스가 들어가 있음.

스페이스가 들어가면 안됨.

2013년 9월 7일 토요일

some characters cannot be mapped using euc-kr character encoding

Select First Character를 눌러 해당 위치를 찾아봤다.
한글사이의 스페이스(빈칸)가 문제.
스페이스만 지우고 했더니, 정상저장.

2013년 8월 3일 토요일

CHECKOUT can only be performed on a version resource [at this time]

 

Some of selected resources were not committed.
Some of selected resources were not committed.
svn: E200007: Commit failed (details follow):

svn: E200007: Commit failed (details follow):
svn: E200007: CHECKOUT can only be performed on a version resource [at this time].

 

원인은 확실한 건지는 모르겠지만, SVNKit 문제라고 한다.

 

cleanup 으로 해결;;