블로그 이미지
짜장이누나

카테고리

전체보기 (98)
짜장짜장이 (3)
----------------● (0)
프로그래밍 (0)
└ 지식쌓기 (12)
└ 프로젝트일지 (3)
└ AEM (1)
└ JAVA (7)
└ Java Script (39)
└ FreeMarker (1)
└ Linux (3)
└ HTML (2)
└ DataBase (1)
└ XML (0)
└ eclipse Tip (5)
└ 미해결문제 (0)
└ 기타 (10)
----------------○ (0)
잡지식 (0)
일상 (8)
맛집 (1)
Total115,531
Today135
Yesterday316

 

 

 

 

 

 

아이고 입사한지 2년이 되서야 AEM관련 포스팅을 시작하다니...

틈틈히 이 전에 노트에 정리해둔 것도 올려야겠다!

 

 

 

 

라디오버튼(radio button) 속성 -  xml 파일 소스

 

<radioButton

    .

    .

    .

    type = "radiogroup"

    xtype = "selection"

    <options> 

        <opt0 jcr:primaryType="nt:unstructured" text="Dialog에 표시될 text"
                    value="property에 저장될 값" /> 

    <opt1

    .... />

        <opt2

  .... />

    </options> // radio 항목

</radioButton>

 

 

 

 

 

 

 

▶ 예제 소스


	<radioButton
		jcr:primaryType="cq:Widget"
		fieldLabel="Radio Button"
		name="./radio"
		type="radiogroup"
		xtype="selection">
		<options jcr:primaryType="cq:WidgetCollection">
			<pos0 jcr:primaryType="nt:unstructured" text="radio 1"
				value="rd1" />
			<pos1 jcr:primaryType="nt:unstructured" text="radio 2"
				value="rd2" />
			<pos2 jcr:primaryType="nt:unstructured" text="radio 3"
				value="rd3" />
		</options>
	</radioButton>

 

 

 

 

 

 

 

Dialog 사진

 

 

 

 

 

 

 

CRX/DE 해당 노드에 저장된 상태

 

 

 

 

 

 

 

요렇게 노드의 프로퍼티 확인까지 하면 끝!

 

 

 

 

 

 

'└ AEM' 카테고리의 다른 글

[AEM6.0] Dialog 라디오버튼(radio button) 생성  (0) 2017.12.26
Posted by 짜장이누나

 

 

 

 

 

 

 

 

 

더보기 (업무 요구사항)

 

 

 

 

 

지금까지 Map을 사용하면서 Value형에 배열이나 List 등과 같은 Collection을 사용해본 적은 별로 없었던 것 같다.

 

 

Map<Key형, Value형> mapName = new HashMap<>();

 

 

 

 

 

 

 

 

 

 

 

Map에 직접 배열을 put 하면 되지 않을까?

 

 

요청 사항을 작업하던 중 Map의 Value 값에 배열을 넣어야해서 먼저 아래와 같이 시도해보았다.

 



import java.util.HashMap;
import java.util.Map;

public class Main {

	public static void main (String[] args) {

		Map<String,String[]> multiMap = new HashMap<>();
		multiMap.put("key04", {"value4_1","value4_2","value4_3"});   // ERROR!!

	}
}

 

 

 

 

Value를 String 배열로 하고 바로 배열을 넣었더니 ERROR가 뙁!!!!!!!!

 

[!] The method put(String, String[]) in the type Map<String,String[]> is not applicable for the arguments (String, String, String, String)

 

 

 

 

 

'{}' 중괄호로 감싼 것을 배열로 인식하지 않아 나는 에러였다..!!

 

 

한번에 동작해도 불안하지만 이런 간단한 것도 한번에 안되면 더 슬퍼..

 

 

 

 

 

 

 

 

 

 

그렇다면 배열은 어떻게 넣어야 할까?

 

 

 

방법은 간단하다.! Map에 put 하기 전에  열을 미리 선언해 두고 그 배열을 인덱스 값으로 접근 하여 넣어주면 된다.

 

 

// 배열 선언 및 초기화

ex) String arr[] = {"A", "B", "C"};

 

Map<key형, 배열형[ ]> mapName = new HashMap<>(); 

mapName.put(key값, 배열[index]);

 

 

 

   (  작업하면서 2차원 배열을 사용해야했기에 예제도 2차원 배열로 만들었습니다. ) 



	// 1-1. 2차원 배열 생성
	String valueArr[][] = {{"value1_1","value1_2","value1_3"},
			{"value2_1","value2_2","value2_3"},
			{"value3_1","value3_2","value3_3"}};
	
	// 1-2. Map에 배열 넣기
	Map< String, String[] > arrMap = new HashMap<>();
	arrMap.put("key01", valueArr[0]);
	arrMap.put("key02", valueArr[1]);
	arrMap.put("key03", valueArr[2]);




	// 2-1. Map에 List 넣기
	LinkedList<String> valueList = new LinkedList<>();
	valueList.add("AAA");
	valueList.add("BBB");
	valueList.add("CCC");

	// 2-2. Map에 List 넣기
	Map< String, LinkedList <String>> listMap = new HashMap<>();
	listMap.put("key04", valueList.get(0));
	listMap.put("key05", valueList.get(1));
	listMap.put("key06", valueList.get(2));

 

 

 

 

 

이렇게 배열이나 List를 미리 선언해두고 get하는 방법으로 Map에 넣어주면 에러없이 성공~~!!!!

 

 

 

 

 

 

 

 

 

 

확장: Map에 Collection 넣기

 

 

 

만약 Map에 Value 값으로 한가지로 정해지지 않고 여러 형태의 Collection을 넣고 싶다면?

 

Value를  Collection의 최상위 클래스인 Object로 지정 해주면 된다.

 

 

// 배열 선언 및 초기화

ex) String arr[] = {"A", "B", "C"};

 

Map<key형, Object> mapName = new HashMap<>(); 

mapName.put(key값, 배열);

mapName.put(key값, List);

mapName.put(key값, String);

mapName.put(key값, int);

      .

      .

      .

 

 

 

 

 

   (  위 예제를 응용해보겠습니다. ) 



	// 1. 2차원 배열 생성
	String valueArr[][] = {{"value1_1","value1_2","value1_3"},
			{"value2_1","value2_2","value2_3"},
			{"value3_1","value3_2","value3_3"}};

	// 2. List 생성
	LinkedList<String> valueList = new LinkedList<>();
	valueList.add("AAA");
	valueList.add("BBB");
	valueList.add("CCC");



	/* 3. Map에 여러가지 값 넣기 */
	Map< String, Object > multiMap = new HashMap<>();

	multiMap.put("key01", valueArr[0]);  // 배열
	multiMap.put("key02", valueArr[1]);  // 배열
	multiMap.put("key03", valueList.get(0));  // List
	multiMap.put("key04", "This value type is String.");  // String
	multiMap.put("key05", 1234);  // int


 

 

 

 

여기까지 완료!!

 

위 예제처럼  Value 값이 정해지지 않은 경우 Object로 선언 하여 여러가지 값에 대하여 대응할 수 있다.

 

 

 

 

 

 

 

한 가지 더!!

 

 

당연히 key값도 Object형으로 주어지면 여러 형태의 key값이 가능하다.

 



	String keyArr[] = {"AA", "BB", "CC"};

	Map< Object, Object > multiMap = new HashMap<>();

	multiMap.put("1", 1234);
	multiMap.put(keyArr[1], 1234);
	multiMap.put(3, 1234);

 

 

 

 

 

 

 

 

 

 

그럼 오늘도 여기까지 급 마무으리~~~ Ho!!! ♪

 

 

 

 

 

 

 

 

 

Posted by 짜장이누나




지금 다니는 회사로 이직하면서 '기업 홈페이지 유지/보수' 업무를 하고 있다.



그 전 회사에는 솔루션 개발팀에 소속되어 개발을 하고 모듈별로 또 인원이 나눠지다보니 소스가 많은 사람의 손을 탄다고 해도 2-3명? 정도였다.

그래서 소스 수정하는데 이해하기 어렵다거나 뭐 그런 어려움은 별로 못느낀 것 같다.



그런데 지금 회사에서 내가 맡고있는 홈페이지의 첫 구축 년도가 내가 알기론.. 2010년 ~ 2012년 사이로 알고있다.

그 이후 수~~~~많은 사람들이 소스를 수정하고 만지고 뭐하고 저하고 과정을 거쳤던 것이다.

나의 업무 중 대부분은 구축한지 오래되다보니 컴포넌트 개선 개발 요청이 많다.



처음엔 정말 너무 힘들었다.

같은 소스 안에서도 여러 사람의 흔적이 느껴지고 어쩔때는 내가 느끼기에도 정말 참을 수 없을 정도의 더러운(?)소스들이 자주!! 눈에 띄였다.

그럴 때면 정말 다 갈아 엎고싶은데 보통 개선 업무는 일정이 타이트하기 때문에 그것도 쉽지않다 ㅠ_ㅠ

휴..  이제는 어느정도 익숙해져서 그런 것들을 고치는데 노하우가 어느정도 생겼지만 처음엔 정말 힘들었다.....



이렇게 또 운영업무의 매력(?)을 알아갑니다.



갑자기 옛날 생각이 나서 주절주절 했는데 운영 업무를 하다가 기분 좋을 때가 몇 있었다.

그 중 하나를 오늘 또 오랜만에 느껴서 그냥 오랜만에 포스팅 해볼까 한다.



바로바로바로바로!!



누군다 엄~~~~~청 길게 코딩 해놨는데 내가 그걸 확!!! 줄여버리면 그게 그렇게 기분이 좋더라~~~~♥_♥




 

 


 

헤헷 오늘 100줄 좀 더 넘게 줄였다!!

아잉 기분 좋앙~~~~~~~ >_<

 

 

앞으로도 퐉퐉퐉!!! 다~~~ 줄여버리겠돠아아ㅓㅏㅏ!!!!!!










Posted by 짜장이누나

최근에 달린 댓글

최근에 받은 트랙백

글 보관함