목적
예) admin_seq 라는 변수는 adminSeq라는 변수로 바꾸어 반환
- ‘_’ 문자열이 들어오면 변환하는 util class 생성
package com.sh.test.common.util;
/**
* 입력 문자열에 대하여 Camel 표기법으로 변환을 지원하는 Utility Class 이다.
*/
public final class CamelUtil {
private CamelUtil() {
}
/**
* underscore ('_') 가 포함되어 있는 문자열을 Camel Case ( 낙타등
* 표기법 - 단어의 변경시에 대문자로 시작하는 형태. 시작은 소문자) 로 변환해주는
* utility 메서드 ('_' 가 나타나지 않고 첫문자가 대문자인 경우도 변환 처리
* 함.)
* @param underScore
* - '_' 가 포함된 변수명
* @return Camel 표기법 변수명
*/
public static String convert2CamelCase(String underScore) {
// '_' 가 나타나지 않으면 이미 camel case 로 가정함.
// 단 첫째문자가 대문자이면 camel case 변환 (전체를 소문자로) 처리가
// 필요하다고 가정함. --> 아래 로직을 수행하면 바뀜
if (underScore.indexOf('_') < 0 && Character.isLowerCase(underScore.charAt(0))) {
return underScore;
}
StringBuilder result = new StringBuilder();
boolean nextUpper = false;
int len = underScore.length();
for (int i = 0; i < len; i++) {
char currentChar = underScore.charAt(i);
if (currentChar == '_') {
nextUpper = true;
} else {
if (nextUpper) {
result.append(Character.toUpperCase(currentChar));
nextUpper = false;
} else {
result.append(Character.toLowerCase(currentChar));
}
}
}
return result.toString();
}
}
2.Map이든 VO이든 DTO이든 Bean이든 변수값을 받을 class파일 생성
package com.sh.test.common.util;
import org.apache.commons.collections4.map.ListOrderedMap;
/**
* Camel Case 표기법 변환 처리를 포함하는 Map 확장 클래스
*/
public class EgovMap extends ListOrderedMap {
private static final long serialVersionUID = 6723434363565852261L;
/**
* key 에 대하여 Camel Case 변환하여 super.put
* (ListOrderedMap) 을 호출한다.
* @param key
* - '_' 가 포함된 변수명
* @param value
* - 명시된 key 에 대한 값 (변경 없음)
* @return previous value associated with specified
* key, or null if there was no mapping for
* key
*/
@Override
public Object put(Object key, Object value) {
//어떻게 바뀌는지 찍어보자 LTTER_SEQ가 letterSeq로 바뀔 것이다.
System.out.println("key: "+key+",value :"+value);
System.out.println("CamelUtil.convert2CamelCase((String) key) :"+CamelUtil.convert2CamelCase((String) key)+", value:"+value);
return super.put(CamelUtil.convert2CamelCase((String) key), value);
}
}
'언어 > Java' 카테고리의 다른 글
[Java] NHN_toast를 이용하여 카카오 알림톡 발송 (0) | 2025.02.23 |
---|---|
[Java] 다중검색필터 (checkbox)로 보낸 array값들 checkbox로 checked하기 (0) | 2025.02.23 |
[Java] 파일 업로드 취약점 (0) | 2025.02.16 |
[Java] xss 방지 로직 짜기 (0) | 2025.02.16 |
[Java] 로그인 기능 만들기 (0) | 2025.02.16 |