기본 콘텐츠로 건너뛰기

2015의 게시물 표시

같은 이름으로 이미지를 변경할경우, JQuery

// html // js // 일반적인 이미지 변경 할경우 $('#banner').attr('src', '/image/bb.jpg'); // 같은이름의 이미지로 변경할 경우 $('#banner').attr('src', '/image/bb.jpg?param=123');
이미지를 변경하기 위해 동일한 이름으로 이미지를 교체하는 경우가 있는데, 캐싱문제로 인해 바로 변경되지 않는 경우가 있다.
위와같이 파라미터를 랜덤한 값으로 붙여 해결할수 있다.

팝업창 옵션, JavaScript

function openPopup() { var url = '/popup.jsp'; var option = 'width=100, height=100'; window.open(url, '', option); } window popup option
width : 팝업창 가로사이즈 (px로 표시)
height : 팝업창 세로사이즈 (px로 표시)
top : 화면 상단에서 부터의 팝업창이 뜰 위치 (px로 표시)
left : 화면 왼쪽에서 부터의 팝업창이 뜰 위치 (px로 표시)
toolbar : 도구창 노출 여부 (yes or no로 표시)
menubar : 메뉴 노출 여부 (yes or no로 표시)
location : 메뉴 아이콘 노출 여부 (yes or no로 표시)
directories : 제목 표시줄 노출 여부 (yes or no로 표시)
status : 상태바 노출 여부 (yes or no로 표시)
scrollbars : 스크롤 사용여부 (yes or no로 표시)
resizable : 팝업창 사이즈 변경 가능 여부 (yes or no로 표시)

SpringSource Tool Suite 메뉴등록, Linux mint

STS를 다운받고 /opt 디렉토리로 이동시켜 압축을 해제한다.

sudo gedit /usr/share/applications/STS.desktop

[Desktop Entry]
Name=SpringSource Tool Suite
Comment=SpringSource Tool Suite
Exec=/opt/springsource/sts-3.6.1.RELEASE/STS
Icon=/opt/springsource/sts-3.6.1.RELEASE/icon.xpm
StartupNotify=true
Terminal=false
Type=Application
Categories=Development;IDE;java;

슈퍼키를 눌러 sts를 입력하면 등록된 메뉴를 확인할수 있다.

TextItem에 힌트(placeholder) 주기, SmartGWT

TextItem ti01 = new TextItem("name"); ti01.setHint("Hint"); // (1) ti01.setShowHintInField(true); // (2) (1) ti01.setHint("Hint"); 힌트를 주면 기본적으로 TextItem의 오른쪽에 힌트가 생긴다.
(2) ti01.setShowHintInField(true); 옵션을 주면 TextItem Field안쪽에 힌트가 보이고 focus 가 됐을때 힌트는 사라진다.

merge update insert사용하기, Oracle

MERGE INTO MEMBER M USING DUAL -- 업데이트를 할것인지 인서트를 할것인지의 조건 ON (M.MEMBER_ID = ?) WHEN MATCHED THEN -- 조건에 맞으면 업데이트 UPDATE SET MEMBER_UPDATE = ? WHEN NOT MATCHED THEN -- 조건에 맞지 않으면 인서트 INSERT ( MEMBER_ID , MEMBER_UPDATE ) VALUES ( ? , ? )

데이터에 순위주기, Oracle

-- RANK -- 순위를 정할때 같은값이 있을경우 같은 RANK값을 가지게 된다. -- 다음 랭크는 중복된 값을 건너뛰게된다. -- EX ) 1, 2, 2, 4, 4, 6 SELECT MEMBER_ID, MEMBER_NAME, MEMBER_GROUP_CODE , RANK() OVER (ORDER BY MEMBER_SEQ DESC) AS RANK FROM MEMBER -- DENSE_RANK -- 순위를 정할때 같은값이 있을경우 같은 RANK값을 가지게 된다. -- 다음 랭크에 중복상관없이 순차적으로 넘버링된다. -- EX ) 1, 2, 2, 3, 4, 4, 5 SELECT MEMBER_ID, MEMBER_NAME, MEMBER_GROUP_CODE , RANK() OVER (ORDER BY MEMBER_SEQ DESC) AS RANK FROM MEMBER -- RANK GROUP -- 그룹별로 순위를 부여한다 -- EX ) 1, 2, 3, 1, 2, 3 SELECT MEMBER_ID, MEMBER_NAME, MEMBER_GROUP_CODE , RANK() OVER (PARTITION BY MEMBER_GROUP_CODE ORDER BY MEMBER_SEQ DESC) AS RANK FROM MEMBER

TextItem style추가, SmartGWT

SmartGWT의 기본 css파일에 작성한 css를 추가해주도록 한다.

변경 스타일 예

.textItemBoxStyle, .textItemBoxStyleFocused, .textItemBoxStyleSelected, .textItemBoxStyleSelectedFocused { /*background: url("./images/bullet_0.png") no-repeat scroll 5px center rgba(0, 0, 0, 0);*/ /*padding-left: 17px;*/ color: #494949; text-align: left; } .textItemBoxStyle, .textItemBoxStyleFocused, .textItemBoxStyleSelected, .textItemBoxStyleSelectedFocused { font-family: Verdana, Arial, sans-serif; font-size: 12px; color:#494949; -o-text-overflow: ellipsis; text-overflow: ellipsis; -webkit-border-radius: 2px; -moz-border-radius: 2px; -ms-border-radius: 2px; -o-border-radius: 2px; border-radius: 2px; border: 1px solid #acacac; background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #f7f7f7), color-stop(100%, #f2f2f2)); background: -webkit-linear-gradient(top, #f7f7f7 0%, #f2f2f2 100%); background: -moz-linear-gradient(top, #f7f7f7 0%, #f2f2f2 100%); background: -o-linear-gradient(top,…

SelectItem에 한개이상의 Display Field 사용, SmartGWT

SelectItem은 기본적으로 한개의 Display값을 가진다.


SelectItem si01 = new SelectItem(); si01.setOptionDataSource(""); si01.setValueField("CD"); si01.setDisplayField("CD_NM"); // Display에 사용되는 필드로 이름, 라벨, 너비값 ListGridField si01Item01 = new ListGridField("CD", "Code", 100); ListGridField si01Item01 = new ListGridField("CD_NM", Code Name"); si01.setPickListFields(si01Item01, si01Item02); // 두개의 필드를 Display로 사용 si01.setPickListWidth(200); // Display 너비 ListGridField를 SelectItem에 setPickListFields해줌으로써 여러개의 필드를 가질수 있다.

ListGrid의 edit모드에서 위에 작성한 SelectItem을 사용하고자 할때에는 아래와 같이 .setEditorProperties(SelectItem) 코드를 추가해준다.

ListGrid grid = new ListGrid(); // si01은 만들어 놓은 SelectItem grid.setEditorProperties(si01);

SelectItem Criteria Change, SmartGWT

SelectItem si01 = new SelectItem(); si01.setOptionDataSource(ds); si01.setOptionCriteria(new Criteria("group_id", "A"); si01.setValueField("CD"); si01.setDisplayField("CD_NM");
위와 같이 초기 세팅된 Criteria값을 변경해야 하는 경우가 필요하다.


si01.setOptionCriteria(new Criteria("group_id", "B"); 다음과 같이 Criteria의 값을 변경하여도 서버에 전송되는 값은 'A'값이 넘어간다.


si01.getOptionCriteria().addCriteria(new Criteria("group_id", "B")); 다음과 같이 코드를 변경하여 사용하도록 한다.

SEVERE: A web application registered the JBDC driver, Exception

SEVERE: A web application registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

- ibatis설정 xml확인
- 추가된 항목에 대한 설정확인
- 서비스를 완전히 종료하였는지 확인

구글캘린더 이벤트 삭제, Android

private int DeleteCalendarEntry(int entryID) { int iNumRowsDeleted = 0; Uri eventsUri = Uri.parse(getCalendarUriBase()+"events"); Uri eventUri = ContentUris.withAppendedId(eventsUri, entryID); iNumRowsDeleted = getContentResolver().delete(eventUri, null, null); Log.i(DEBUG_TAG, "Deleted " + iNumRowsDeleted + " calendar entry."); return iNumRowsDeleted; }
참고 : http://stackoverflow.com/questions/6924438/how-to-delete-specific-event-in-calendar

설정파일 저장하기, Android

public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); SharedPreferences sp = getApplicationContext().getSharedPreferences("Str", mode); SharedPreferences.Editor editSp = sp.edit(); editSp.putString("setting", "1"); } //mode - 0 : 읽고쓰기 //MODE_WORLD_READABLE : 읽기공유 //MODE_WORLD_WRITEABLE : 쓰기공유

디바이스에 설치되어 있는 어플 찾기, Android

// 카카오톡이 설치되어 있는지 확인 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { this.getPackageManager().getPackageInfo("com.kakao.talk", PackageManager.GET_ACTIVITIES); } catch (NameNotFoundException e) { e.printStackTrace(); ToastUtil.showShotToast(this, "없음"); } ToastUtil.showShotToast(this, "있음"); }

구글블로그에 타사 서브도메인 사용방법

준비된 도메인은 www.springcome.net이고 hosting.kr에서 등록하였습니다.

blog.springcome.net으로 서브 도메인을 사용하여 블로그를 사용하고자 합니다.
먼저 구글블로그의 설정 -> 기본으로 이동합니다.
글발행 섹션에 보면 타사URL설정이 있습니다.

서브 도메인을 입력을 하고 저장을 누르게 되면 아래와 같이 CNAME2개가 표시 됩니다.

그럼 다음으로 hosting.kr의 서브도메인을 설정합니다.

보유도메인에 보면 네임서버 설정에 네임서버(서브도메인)설정관리를 선택하고 신청하기를 클릭합니다.

레코드 타입을 CNAME으로 선택하고 구글 블로그에 표시된 CNAME 두개를 입력해줍니다.

시간이 조금 걸릴수 있는 작업입니다. 한시간정도 여유를 두시고 다시 구글 블로그의 타사 도메인 설정에 blog.springcome.net을 입력후 저장합니다.
정상적으로 완료된 모습니다.

작업이 완료되면 blog.springcome.net으로 바로 연될되는걸 확인할수 있습니다.

JQuery, JSON 배열에 데이터 넣기

var jsonArr = { "info": [ { "name":"aaa" }, { "name":"bbb" }, { "name":"ccc" } ] };
다음과 같은 형식의 데이터를 만들고자 할때 아래와 같이 사용함.


var jsonArr = {'info':[]}; $(':input[name=info]').each(function(){ jsonArr.info.push({ 'name':$(this).val() }); });
Class에서 목록형태로 받는 방법


//BeanClass(Member.class) private JSONObject json; //ControllerClass JSONArray jArray = memberBean.getJson().getJSONArray("json"); List jsonBean = (List) jArray.toCollection(jArray, JsonBean.class);

Exception, ORA-00918 : 열의 정의가 애매합니다.

Cause:java.sql.SQLSyntaxErrorException:ORA-00918:열의 정의가 애매합니다.

두개 이상의 테이블을 조인하여 사용할때 발생.

조인되는 테이블컬럼에 같은 컬럼의 이름이 존재할경우 alias를 붙여 어떤 테이블의 컬럼인지 알려주어야 한다.


SELECT A.MBR_ID, B.MBR_ID FROM MEMBER A INNER JOIN MEMBER B ON A.MBR_ID = B.MBR_ID