'미분류'에 해당되는 글 104건

  1. 2012.07.30 JDBC FailOver
  2. 2012.07.06 fileupload
  3. 2012.07.03 awk command
  4. 2012.05.18 JSTL 숫자 포맷
  5. 2012.04.06 이클립스 단축키

JDBC FailOver

2012. 7. 30. 09:17 from DB

현재 오라클 10g 버젼이 RAC 구성(실제 저장공간은 1개, 서버는 2개)이 되어있어 JDBC URL 설정으로 이중화 구성이 가능

JDBC URL 셋팅 시 아래와 같이 failover 구성으로 설정

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.83)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.84)(PORT=1521)))(LOAD_BALANCE=OFF)(FAILOVER=ON)(CONNECT_DATA=(SERVICE_NAME=HOSTNM)(SERVER=DEDICATED)))

'DB' 카테고리의 다른 글

DBMS (DataBase Management System)  (0) 2014.03.06
sysdate  (0) 2013.07.19
MS SQL sequence 만들기  (0) 2012.03.27
DB2 rownum - oracle  (0) 2011.09.14
테라DB 관련 정보  (0) 2011.09.14
Posted by 에시드 :

fileupload

2012. 7. 6. 14:23 from script

 // iplanet 연동으로 인해 was까지 딜레이로 uploadMonitor Sync용 딜레이 연산
 function filesize1(){
  //alert(uploadLen);
  var fileObj = null;
  var len = "";
  fileObj = document.getElementById("file1");
  if(navigator.userAgent.indexOf('MSIE') < 0){
  // IE 아닐경우
   if(typeof FileReader !=="undefined"){   
    len = fileObj.files[0].size;
   }
  } else if(navigator.userAgent.indexOf('MSIE') > 0){
  // IE
   if(navigator.appVersion.indexOf("MSIE 6.") > 0){
   //IE6 
    var img = new Image();
    img.dynsrc = fileObj.value;
    len = img.fileSize;

   } else {
   // IE7,9
    var fso=new ActiveXObject('Scripting.FileSystemObject');
    var f =fso.GetFile(fileObj.value);
    //alert(f.Size);
    //alert(f.DateCreated);
    len = f.size;
    f = null;
    fso = null;
   }
  }
  // 최대 50MB len은 MB로 계산
  len = len/(1024*1024);
  var strLen = len+"";  
  uploadLen = strLen.substring(0 , strLen.indexOf("."));
  if(uploadLen == 0 || uploadLen < 5 ){
   msec = 3000;
  } else {
   msec = uploadLen * 600;
  }
  alert(msec);
  
 }
 
 function getSize(){
  var str = document.all;
  alert(str.gimg.fileSize);
 }

 

 

 

 var uploadLen = "0";
 var msec = 3000;

 // 파일 업로드 상태 바를 보여준다.
 function upload() {
  startProgress2(msec);
  document.uploadFrm.submit();
 }

 $(document).ready(function() {
  if("<%=uploadType%>" == "template") {
   $("#attention").each(function() {
    $(this).show();
   });
  }
 });

 

 

 

 

var timer;


function refreshProgress() {
    UploadMonitor.getUploadInfo(updateProgress);
}

function updateProgress(uploadInfo) {
    if (uploadInfo.inProgress) {
     clearInterval(timer);
     timer = 0;
        document.getElementById('uploadbutton').disabled = true;
        document.getElementById('file1').disabled = true;

        var fileIndex = uploadInfo.fileIndex;

        var progressPercent = Math.ceil((uploadInfo.bytesRead / uploadInfo.totalSize) * 100);

        document.getElementById('progressBarText').innerHTML = 'upload in progress: ' + progressPercent + '%, transfered ' + uploadInfo.bytesRead + ' of ' + uploadInfo.totalSize + ' bytes';
       
        widthMultiplier = document.getElementById('progressBarBox').clientWidth / 100;
       
        document.getElementById('progressBarBoxContent').style.width = parseInt(progressPercent * widthMultiplier) + 'px';

        window.setTimeout('refreshProgress()', 500);
    }
    else {
        document.getElementById('uploadbutton').disabled = false;
        document.getElementById('file1').disabled = false;
    }
    return true;
}

function startProgress() {
    document.getElementById('progressBarBoxContent').style.width = 0 + 'px';
    document.getElementById('progressBarText').innerHTML = 'upload in progress: 0%';
    document.getElementById('uploadbutton').disabled = true;
    window.setTimeout("refreshProgress()", 1500);
    document.getElementById('progressBar').style.display = 'block';

    return true;
}

function startProgress2(value) {
 var msec = value;
 
    document.getElementById('progressBarBoxContent').style.width = 0 + 'px';
    //document.getElementById('progressBarText').innerHTML = 'upload in progress: 0%';
    document.getElementById('progressBarText').innerHTML = 'upload in progress: 0%, initialization, wait a minute';
    document.getElementById('uploadbutton').disabled = true;
    //window.setTimeout("refreshProgress()", msec);
    timer = setInterval("refreshProgress()",3000);

    document.getElementById('progressBar').style.display = 'block';

    return true;
}

'script' 카테고리의 다른 글

document.implemention.hasFeature('Core')  (0) 2013.04.19
decodeXSS  (0) 2012.10.04
정규식 : 특정단어 제외  (0) 2012.03.01
undefined, null, typeof  (0) 2012.01.11
offsetHeight, clientHeight, scrollHeight  (0) 2011.09.19
Posted by 에시드 :

awk command

2012. 7. 3. 11:22 from linux

awk

 

데이터 조작 및 보고서 생성에 사용되는 유닉스 프로그래밍 언어

 

1. awk 형식

 

  - 파일 입력

    . awk 'pattern' filename

    . awk '{action}' filename

    . awk 'pattern {action}' filename

    . 예제

      - awk '/Mary/' employee

      - awk '{print $1}' employee

      - awk '/Sally/{print $1, $2}' employee

        . 구분자는 공백

 

  - 명령으로 입력

    . command | awk 'pattern'

    . commnad | awk '{action}'

    . command | awk 'pattern {action}'

    . 예제

      - df | awk '$4 > 75000'

      - rusers | awk '/root$/{print $1}'

 

2. 출력 형식 지정

 

  - print 함수

    . awk는 일치된 줄을 출력하는 기본 동작을 수행

    . 변수, 계산 결과값이나 문자 상수를 매개변수로 받음

    . 문자열은 큰 따옴표로 묶고, 콤마는 매개변수를 분리하는데 사용

    . 콤마를 쓰지 않으면, 매개변수는 하나로 인식하고, 콤마는 출력 필드 구분자로 사용되며, 기본값은 공백

    . date | awk '{print "Month: " $2 " \nYear: ", $1}'

    . Escape Sequences(이스케이프 시퀀스)

      - 역슬래시(\)와 영문자 숫자로 표현


이스케이프 시퀀스 

 의미 

 \b

 백스페이스

 \f

 폼피드 (form feed)

 \n

 개행문자

 \r

 캐리지 리턴 (Carriage return)

 \t

 탭

 \047

 8진수 47, 작은 따옴표

 \c

 c는 다른 문자를 의미 예를 들어 \


      - awk '/Sally/{print "\t\tHave a nice day, " $1, $2 "!"}' employees 

       

  - OFMT 변수

    . 숫자에 서식을 지정해서 출력해야 할 경우

    . awk 'BEGIN{OFMT="%.2f"; print 1.245678, 12E-2}'

 

  - printf 함수

    . 표준 출력으로 형식화된 문장을 되돌려 줌

    . 개행문자가 필요하면 반드시 이스케이프 시퀀스로 지정

    . echo "UNIX" | awk '{printf "|%-15s|\n", $1}'

    . echo "UNIX" | awk '{printf "|%15s|\n", $1}'

    . awk '{printf "The name is: %-15s ID is %8d\n", $1, $2}' employees

    . printf 변환 문자


 문자 

 설명 

 c

 문자

 s

 문자열

 d

 10진수

 ld

 long형 10진수

 u

 부호없는 10진수

 lu

 long형 부호없는 10진수

 x

 16진수

 lx

 long형 16진수

 o

 8진수

 lo

 long형 8진수

 e

 부동소수점 숫자. 과학적 표기법(e-)

 f

 부동소수점 숫자

 g

 부동소수점 숫자. e나 f변환 중 적은 자리수를 차지 하는 표기법 사용


    . printf 수식어


 문자 

 설명 

 -

 왼쪽정렬 수식어

 #

 0으로 시작하는 8진법 형식의 정수를 표시 16진법 형식의 정수는 0x로 시작하여 표기

 +

 d,e,f,g를 이용하여 변환할때, 숫자를 부호 +,- 함께 출력

 0

 화이트 스페이스 대신 0으로 값을 채워 출력


    . printf 형식 지정자


 형식지정자

 동작 

 x='A', y=15, z=2.3, $1=Bob Smith 할당

 %c

 단일 ASCII문자 출력

printf("The character is %c.\n",x)

-> The character is A.

 %d

 10진수 출력

 printf("The boy is %d years old.\n",y)

-> The boy is 15 years old. 

 %e

 숫자를 e표기법으로 출력

 printf("z is %e.\n",z)

->z is 2.3e+01.

 %f

 부동소수점 숫자 출력

 printf("z is %f.\n",2.3*2)

->z is 4.600000.

 %o

 8진수 출력

 printf("y is %o.\n",y)

-> y is 17.

 %s

 문자 출력

 printf("The name of the culprit is %s.\n",$1)

-> The name of the culprit is Bob smith.

 %x

 16진수 출력

 printf("y is %x.\n",y)

-> y is f.

 

 

3. 파일에서 awk 명령 사용

 

  - awk -f awkfile emplyees

 

4. 레코드와 필드

  

  - 레코드

    . 레코드 구분자

      - 입출력시 레코드를 구분해 주는 구분자(행 구분자)는 기본적으로 캐리지 리턴(CR)

    . $0 변수

      - 전체 레코드를 참조

      - awk '{print $0}' employees

    . NR 변수

      - 각 레코드 번호는 awk 내장 변수인 NR에 저장. 레코드 처리가 끝난 후 NR값이 하나 증가

      - awk '{print NR, $0}' employees

 

  - 필드

    . 각 레코드는 기본적으로 화이트스페이스(공백, 탭)로 구분된 필드라는 단어들로 구성

    . awk '{print NR, $1, $2, $5}' employees

    . awk '{print NF, $0}' employees

    . 필드 구분자

      - 입력 필드 구분자

        . FS에는 입력 필드 구분자가 지정. 기본값은 스페이스, 탭

        . 명령줄에서 FS값을 변경하는 경우 -F 옵션과 함께 새로운 구분자를 지ㅓㅇ

          - awk -F: '/Tom Jones/{print $1, $2}' employees2

        . 두 개 이상의 입력 필드 구분자를 지정할 경우 대괄호([])에 표기

          - awk -F'[ :\t]' '{print $1, $2, $3}' employees2

            . 스페이스, 콜론(:), 탭

      - 출력 필드 구분자

        . 기본값은 스페이스이며, OFS 내장변수에 지정

        . print 문에서 각 필드를 구분하기 위해 사용한 콤마(,)는 무조건 OFS로 취급

          - awk -F: '/Tom Jones/{print $1, $2, $3, $4}' employees2

          - awk -F: '/Tom Jones/{print $0}' employees2

 

5. 패턴과 동작

 

  - 패턴

    . awk 패턴은 입력 줄을 awk가 어떻게 동작을 할 것인지를 제어

    . 기본 동작은 표현식의 결과가 참인 줄을 출력

    . awk '/Tom/' employees

    . awk '$3<4000' employess

 

  - 동작

    . 동작은 중괄호({})로 묵여 있으며, 세미콜론(;)으로 구분된 문장

    . {action}

    . {print $1, $2}

    . pattern{action statement; action statement; etc.}

    . pattern{

        action statement

        action statement

      }

    . awk '/Tom/{print "Hello there, "$1}' employees

      - 동작이 없는 패턴은 패턴과 일치하는 모든 줄을 출력

 

6. 정규표현식

 

  - awk에서의 정규표현식은 슬래시(\) 사이에 오는 문자들로 구성된 패턴

  - 정규표현식 메타문자의 사용을 허용

  - 정규표현식 메타문자

 

 메타문자

 의미 

 ^

 행의 시작 지시자 

 $

 행의 끝 지시자 

 .

 하나의 문자와 대응

 *

 선행문자와 같은 문자의 0개 혹은 염의 개수와 대응

 ?

 선행문자와 같은 문자

 [ABC]

 []사이의 문자 집합 중 하나와 대응. A or B or C

 [^ABC]

 []사이의 문자 집합에 속하지 않는 한 문자와 대응

 [A-Z]

 A-Z 문자 집합 중 하나와 대응

 A|B

 A나 B와 대응

 (AB)+

 하나 이상의 문자셋 AB와 대응. AB, ABAB, ABABAB

 \*

 문자로서의 *와 대응

 &

 검색열을 저장하여 지환열에서 사용할 수 있게 함

 

 

  - 전체 줄에서의 일치

    . 단일 정규표현식은 전체 줄의 패턴에 대한 일치 여부를 점검

    . 모든 줄이 일치되는 것으로 간주되어 출력

    . awk '/^Mary/' employees

    . awk '/^[A-z][a-z]+ /' employees

      - 대문자로 시작하고, 하나 이상의 소문자가 오며, 이어서 스페이스가 오는 줄을 표시

 

  - match 연산자(~, tilde)

    . 특정 레코드나 필드 내에서 일치하는 정규표현식 패턴이 존재하는지 검사

    . awk '$1~/[Bb]ill/' employees

    . awk '$1!~/ly$/' employees

      - 첫번째 필드가 ly로 끝ㄴ지 않는 행들을 출력

    . POSIX 문자 항목

      - the Porable Operating System Interface는 프로그램들이 운영체제간의 상호 호환이 가능하도록 보증하는 산업표준

      - POSIX로 추가된 대괄호 문자 클래스   

 

 대괄호

 클래스 의미 

 [:alnum:]

 알파벳과 숫자 문자

 [:alpha:]

 알파벳 문자 

 [:cntrl:]

 제어 문자

 [:digit:]

 숫자 문자 

 [:graph:]

 공백이 아닌 문자(스페이스,제어문자등이 아닌 문자)

 [:lower:]

 소문자

 [:print:]

 [:graph:]와 유사하지만 공백을 포함

 [:punct:]

 구두점

 [:space:] 

 모든 공백문자(개행,스페이스,탭)

 [:upper:]

 대문자

 [:xdigit:]

 16진수(0-9a-fA-F)

 

        . awk '/[[:lower:]]+g[[:space:]]+[[:digit:]]/' employees

          - 하나 이상의 소문자와 이어서 g, 하나이상의 스페이스, 숫자가 오는 패턴 검사

 

7. 스크립트 파일 안의 awk 명령

 

  - awk -F: -f info employees2

 

8. 리뷰

 

  - 간단한 패턴 매칭

    . awk '/west/' datafile

    . awk '/^north/' datafile

    . awk '/(no|so)/' datafile

  

  - 간단한 동작

    . awk '{print $3, $2}' datafile

    . awk '{print $3 $2}' datafile

    . awk '{print $0}' datafile

    . awk '{print "Number of fields: "NF}' datafile

   

  - 패턴과 동작이 조합된 정규 표현

    . awk '/northeast/{print $3, $2}' datafile

    . awk '/E/' datafile

    . awk '/^[ns]/{print $1}' datafile

    . awk '$5~/\.[7-9]+/' datafile

    . awk '$2!~/E/{print $1, $2}; datafile

    . awk '$3~/^Joel/{print $3 " is a nice guy."}' datafile

    . awk '$8~/[0-9][0-9]$/{print $8}' datafile

    . awk '$4!/Chin$/{print "The price is $" $8 "."}' datafile

    . awk '/TJ/{print $0}' datafile

 

  - 입력 필드 구분자

    . awk '{print $1}' datafile2

    . awk -F: '{print $1}' datafile2

    . awk '{print "Number of fields: "NF}' datafile2

    . awk -F: '{print "Number of fields: "NF}' datafile2

    . awk -F"[ :]" '{print $1, $2}' datafile2

 

 

9. 비교식

 

  - 관계 연산자

    . 값이 1이면 참, 0이면 거짓

 

 연산자

 의미 

 예제 

 <

 작은 

 x<y 

 <=

 작거나 같은 

 x<=y 

 ==

 같은 

 x==y 

 !=

 같지 않은 

 x!=y 

 >=

 크거나 같은 

 x>=y 

 >

 큰 

 x>y 

 ~

 정규 표현식과 같은 

 x~/y/ 

 !~

 정규 표현식과 같지 않은

 x!~/y/

 

 

    . awk '$3==5346' employees

    . awk '$3>5000{print $1}' employees

    . awk '$2~/Adam/' employees

    . awk '$2!~/Adam/' employees

 

  - 조건식

    . 물음표(?), 콜론(:) 기호 두 개를 사용하여 식을 평가

    . 조건식1?구문2:구문3

    . awk '{max=($1>$2)?$1:$2;print max}' filename

      if($1>$2)

        max=$1

      else

        max=$2

 

  - 산술계산

    . 산술계산은 패턴 안에서 이루어진다. 모든 산술계산은 부동소수점으로 변환한 후 처리

 

 연산자

 의미 

 예제 

 +

 더하기

 x+y

 -

 빼기

 x-y

 *

 곱하기

 x*y

 /

 나누기

 x/y

 %

 나머지

 x%y

 ^

 지수

 x^y

 

    . awk '$3*$4>500' filename

 

  - 논리 연산과 결합 패턴

 

 연산자

 의미 

 예제 

 &&

 논리 AND

 a&&b

 ||

 논리 OR

 a||b

 !

 NOT

 !a

 

    . awk '$2>5 && $2<=15' filename

    . awk '$3==100 || $4>50' filename

    . awk '!($2<100 && $3<20) filename

 

  - 범위 패턴

    . 첫번째 패턴부터 두번째 패턴까지 선택

    . awk '/Tom/,/Suzanne/' filename

 

  - 데이터 검증 프로그램

    . 패스워드 검사 포스트 참고

 

10. 리뷰

 

  - 동일성 검사

    . awk '$7==5' datafile

    . awk '$2=="CT" {print $1, $2}' datafile

    . awk '$7!=5' datafile

 

  - 관계 연산자

    . awk '$7<5 {print $4, $7}' datafile

    . awk '$6>.9 {print $1, $6}' datafile

    . awk '$8<=17 {print $8}' datafile

    . awk '$8>=17 {print $8}' datafile

 

  - 논리 연산자

    . awk '$8>10 && &8<17' datafile

    . awk '$2=="NW" || $1~/south/{print $1, $2}' datafile

 

  - 논리 NOT 연산자(!)

    . awk '!($8==13) {print $8}' datafile

 

  - 산술 연산자

    . awk '/southern/ {print $5+10}' datafile

    . awk '/southern/ {print $8-10}' datafile   

    . awk '/southern/ {print $8/2}' datafile

    . awk '/southern/ {print $8*10}' datafile

    . awk '/southern/ {print $8%3}' datafile

    . awk '$3~/^Susan/ {print "Percentage: "$6+.2 " Volume: "$8}' datafile

  

  - 범위 연산자

    . awk '/^western/,/^eastern/' datafile

 

  - 조건 연산자

    . awk '{print ($7>4 ? "high "$7 : "low "$7)}' datafile

 

  - 대입 연산자

    . awk '$3=="Chris"{$3="Christing;print}' datafile

    . awk '/Derek/{$8 += 12; print $8}' datafile

    . awk '{$7 %= 3; print $7}' datafile

 

http://blog.naver.com/illi0001?Redirect=Log&logNo=140111224551

 

'linux' 카테고리의 다른 글

find 명령어 위주 쉘명령어  (0) 2011.09.20
Posted by 에시드 :

JSTL 숫자 포맷

2012. 5. 18. 15:34 from JAVA

parameter 값 받기#

 

${paramValues['parameter name']}  

 

<c:set> 태그와 함께 사용 하면 

  1. <c:set var="status"    value="${paramValues['status']      }"/>

 

 

 

Loop 문 사용#

 

  1.     <c:forEach var="status" items="${sStatus}" varStatus="loop" >
           <c:out value="${loop.count}">
        </c:forEach>

 

ㅇ attribute 내용

attribute 설명
var 루프 내에서 사용될 래퍼런스 아이디
items 루프의 소스값 아마도 Array를 상속받은 객체이거나 혹은 Object[]형태의 배열일 것이다
begin 시작값
end 마지막 값
step 증가 숫자
varStatus 루프 상태를 알려주는 래퍼런스 아이디

 

DataSource 가져오기#

 

다음 한 문장으로 정의 됨

  1.     <sql:setDataSource
             dataSource="jdbc/mysql"/>

 

ㅇ 태그속성

Attribute 설명
driver 등록된 JDBC 드라이브 클래스 명
url 데이타베이스 접속을 위한 JDBC URL
user 사용자명
password 암호
dataSource WAS에 등록된 DataSource 명
var 참조될 아이디
scope  

 

트랜잭션 처리#

 

쿼리 update 가 일어 나는 <sql:update> 태그를 <sql:transaction> 태그로 감싸주면 된다.

 

 

데이타베이스 조회#

 

ㅇ <sql:query> 태그를 이용하여 쿼리문을 작성 한다.

  1.         <sql:query var="result">
                SELECT WORD_ID      
                     , SHORT_INTRO                        
                     , NO_GOOD_ID
                     , SEE_ALSO
                     , RELATION_SITE
                  FROM WORD_LIB
  2.              WHERE WORD_ID = ?
                  <sql:param value="${param_value}" />
            </sql:query>

 

ㅇ <c:forEach> 태그를 이용하여 화면에 출력 

  1.         <c:forEach items="${result.rows}" var="row">
            <TR>
                <TD/>
                <TD/>
                <TD><c:out value="${row.WORD_ID}"       /></TD>
                <TD><c:out value="${row.SHORT_INTRO}"   /></TD>           
                <TD><c:out value="${row.NO_GOOD_ID}"    /></TD>
                <TD><c:out value="${row.SEE_ALSO}"      /></TD>
                <TD><c:out value="${row.RELATION_SITE}" /></TD>
            </TR>
            </c:forEach>

 

 

ㅇ 전체 소스

  1.     <sql:setDataSource
             dataSource="jdbc/mysql"/>
            
        <sql:query var="result">
            SELECT WORD_ID      
                 , SHORT_INTRO                        
                 , NO_GOOD_ID
                 , SEE_ALSO
                 , RELATION_SITE
              FROM WORD_LIB
        </sql:query>
       
       
        <SHEET>   
            <DATA>
                <c:forEach items="${result.rows}" var="row">
                <TR>
                    <TD/>
                    <TD/>
                    <TD><c:out value="${row.WORD_ID}" /></TD>
                    <TD><c:out value="${row.SHORT_INTRO}" /></TD>
                   
                    <TD><c:out value="${row.NO_GOOD_ID}" /></TD>
                    <TD><c:out value="${row.SEE_ALSO}" /></TD>
                    <TD><c:out value="${row.RELATION_SITE}" /></TD>
                </TR>
                </c:forEach>
            </DATA>
       
        </SHEET>

 

 

데이타베이스 등록#

 

ㅇ <sql:update> 태그를 이용 등록 쿼리를 수행 한다

  1.                     <sql:update var="count">
                            INSERT INTO 'WORD_LIB'
                            (WORD_ID,
                             SHORT_INTRO,
                             NO_GOOD_ID,
                             SEE_ALSO,
                             RELATION_SITE)
                            VALUES
                            (?,?,?,?,?)
                            <sql:param value="${word_id      [loop.count-1]}" />
                            <sql:param value="${short_intro  [loop.count-1]}" />
                            <sql:param value="${no_good_id   [loop.count-1]}" />
                            <sql:param value="${see_also     [loop.count-1]}" />
                            <sql:param value="${relation_site[loop.count-1]}" />
                        </sql:update>

 

ㅇ 트랜잭션 처리가 필요 하다면

       <sql:transaction> 태그를 감싸주면 된다.

 

 

숫자를 통화단위 포멧으로#

 

<fmt:formatNumber> 태그를 이용하여 숫자형 통화단위 포멧을 원하는 형태로 쉽게 출력 할 수 있다.

  1. <fmt:formatNumber value="1234567" pattern="#,###.####" />                       
    <fmt:formatNumber value="1234567" pattern="#,###.####$" />                     
    <fmt:formatNumber value="1234567" pattern="#,###.####" maxIntegerDigits="2"/>   
    <fmt:formatNumber value="1234567" pattern="#,###.####" minFractionDigits="2"/>  

 

결과

  1. 1,234,567
    1,234,567$
    67
    1,234,567.00

 

ㅇ 태그 속성

attribute 설명
value Number valut to display
type NUMBER, CURRENCY, PERCENT
pattern 보여줄 포멧의 패턴
currencyCode type="currency"일때 통화 코드
currencySymbol type="currency"일때 통화 심볼
groupingUsed 그룹넘버인지 아닌지
maxIntegerDigits 소숫점 이상 최대 자리수
minIntegerDigits 소숫점 이하 최소 자리수
maxFractionDigits 소숫점 이하 최대 자리수
minFactionDigits 소숫점 이하 최소 자리수
var 변수명
scope scope

 

 

통화단위 포멧의 숫자를 숫자형으로#

 

<fmt:parseNumber/> 태그를 이용하여 통화단위로 나타나는 숫자로 원래 모습으로 되돌려 놓는다.

 

  1. <fmt:parseNumber  value="1,234,567" pattern="#,###" var="money"/>
    <c:out value="${money}"/>
  2. 결과는
  3. 1234567

 

 

ㅇ 태그 속성

 attribute 설명
value 파싱 당할 숫자의 값
type number, currency, percent
parseLocale 파싱할때 사용할 Locale
integerOnly Integer(ture)인지, floating-point(false)인지
pattern 파싱 패턴
var 변수명
scope  

 

 

날짜를 날짜형 포멧으로#

 

<fmt:formatDate/>

Date 객체를 원하는 날짜형 포멧으로 변경하여 출력 할 수 있다.

  1. <fmt:formatDate value="${date}" pattern="yyyy/MM/dd hh:mm"/>
  2. 결과
  3. 2004/01/01 12:34

 

 

ㅇ 태그 속성

Attribute 설명
value  날짜 객체
type DATE, TIME, BOTH
dateStyle FULL, LONG, MEDIUM, SHORT, DEFAULT
timeStyle FULL, LONG, MEDIUM, SHORT, DEFAULT
pattern 날짜 패턴
timeZone 출력된 날짜의 TimeZone
var 변수
scope  

 

 

 

날짜형 포멧을 날짜객체로#

 

<fmt:parseDate /> 태그를 이용하여 날짜형 스트링값을 날짜 객체로 변환 할 수 있다

  1. <fmt:parseDate var="date" value="200401011234" pattern="yyyyMMddhhmm"/>

 

 

 

ㅇ 태그 속성

Attribute 설명
value 날짜
type DATE, TIME, BOTH
dateStyle FULL, LONG, MEDIUM, SHORT, DEFAULT
timeStyle FULL, LONG, MEDIUM, SHORT, DEFAULT
parseLocate 파싱 때 사용할 Locale
pattern 파싱할 패턴

'JAVA' 카테고리의 다른 글

groovy와 java의 차이점  (0) 2012.08.28
OOM 발생시 heap Dump 옵션  (0) 2012.08.14
이클립스 단축키  (0) 2012.04.06
[Java] 현재 시스템의 IPv4기반의 IP주소 가져오기 ; loopback주소 문제  (0) 2012.02.14
JAVA 형변환  (0) 2012.02.06
Posted by 에시드 :

이클립스 단축키

2012. 4. 6. 12:20 from JAVA

코드 정렬 : Ctrl + Shift + F  (source → format  → document)

 

----- 실행 -----

Ctrl + F11 : 바로 전에 실행했던 클래스 실행

 

----- 소스 네비게이션 -----

Ctrl + 마우스커서(혹은 F3) : 클래스나 메소드 혹은 멤버를 상세하게 검색하고자 할때

Alt + Left, Alt + Right : 이후, 이전

Ctrl + O : 해당 소스의 메소드 리스트를 확인하려 할때

F4 : 클래스명을 선택하고 누르면 해당 클래스의 Hierarchy 를 볼 수 있다.


Alt + <-(->) : 이전(다음) 작업 화면

 

----- 문자열 찾기 -----

Ctrl + K : 찾고자 하는 문자열을 블럭으로 설정한 후 키를 누른다.

Ctrl + Shift + K : 역으로 찾고자 하는 문자열을 찾아감.

Ctrl + J : 입력하면서 찾을 수 있음.

Ctrl + Shift + J : 입력하면서 거꾸로 찾아갈 수 있음.

Ctrl + F : 기본적으로 찾기

 

----- 소스 편집 -----

Ctrl + Space : 입력 보조장치(Content Assistance) 강제 호출 => 입력하는 도중엔 언제라도 강제 호출 가능하다.

F2 : 컴파일 에러의 빨간줄에 커서를 갖져다가 이 키를 누르면 에러의 원인에 대한 힌트를 제공한다.

Ctrl + L : 원하는 소스 라인으로 이동

   로컬 히스토리 기능을 이용하면 이전에 편집했던 내용으로 변환이 가능하다.

Ctrl + Shift + Space : 메소드의 가로안에 커서를 놓고 이 키를 누르면 파라미터 타입 힌트를 볼 수 있다.

Ctrl + D : 한줄 삭제

Ctrl + W : 파일 닫기

Ctrl + I : 들여쓰기 자동 수정

Ctrl + Shift + / : 블록 주석(/* */)

Ctrl + Shift + \ : 블록 주석 제거

Ctrl + /여러줄이 한꺼번에 주석처리됨. 주석 해제하려면 반대로 하면 된다.

Alt + Up(Down) : 위(아래)줄과 바꾸기

Alt + Shift + 방향키 : 블록 선택하기

Ctrl + Shift + Space : 메소드의 파라메터 목록 보기

Ctrl + Shift + O : 자동으로 import 하기

Ctrl + Shift + F4 : 열린 파일 모두 닫기

Ctrl + M : 전체화면 토글

Ctrl + Alt + Up(Down) : 한줄(블럭) 복사

Ctrl + , or . : 다음 annotation(에러, 워닝, 북마크 가능)으로 점프

Ctrl + 1 : 퀵 픽스

F3 : 선언된 변수로 이동, 메소드 정의부로 이동

Ctrl + T : 하이어라키 �b업 창 띄우기(인터페이스 구현 클래스간 이동시 편리)

Ctrl + O : 메소드나 필드 이동하기

Ctrl + F6 : 창간 전환, UltraEdit  Editplus Ctrl + Tab 과 같은 기능

 

----- 템플릿 사용 -----

sysout 입력한 후 Ctrl + Space 하면 System.out.println(); 으로 바뀐다.

try 입력한 후 Ctrl + Space 하면 try-catch 문이 완성된다.

for 입력한 후 Ctrl + Space 하면 여러가지 for 문을 완성할 수 있다.

템플릿을 수정하거나 추가하려면 환경설정/자바/편집기/템플릿 에서 할 수 있다.

 

----- 메소드 쉽게 생성하기 -----

클래스의 멤버를 일단 먼저 생성한다.

override 메소드를 구현하려면, 소스->메소드대체/구현 에서 해당 메소드를 체크한다.

기타 클래스의 멤버가 클래스의 오브젝트라면, 소스->위임메소드 생성에서 메소드를 선택한다.

 

----- organize import -----

자바파일을 여러개 선택한 후 소스->가져오기 체계화 해주면 모두 적용된다.

 

----- 소스 코드 형식 및 공통 주석 설정 -----

환경설정 -> 자바 -> 코드 스타일 -> 코드 포멧터 -> 가져오기 -> 프로파일.xml 을 불러다가 쓰면 된다.

또한 다수의 자바파일에 프로파일을 적용하려면 패키지 탐색기에서 패키지를 선택한 후 소스 -> 형식화를 선택하면 된다.

환경설정 -> 자바 -> 코드 스타일 -> 코드 템플리트 -> 가져오기 -> 템플리트.xml 을 불러다가 쓰면 된다.

 

----- 에디터 변환 -----

에디터가 여러 파일을 열어서 작업중일때 Ctrl + F6 키를 누르면 여러파일명이 나오고 F6키를 계속 누르면 아래로

Ctrl + Shift + F6 키를 누르면 위로 커서가 움직인다.

Ctrl + F7 : 뷰간 전환

Ctrl + F8 : 퍼스펙티브간 전환

F12 : 에디터로 포커스 위치

 

 

 

 

 

- 이클립스 자주쓰는 단축키 -

 

Ctrl + / : 주석 처리 - 한 라인/블록에 대해 주석 처리 (추가 및 제거)

Ctrl + L : 특정 라인으로 이동

Ctrl + F6 : Editor 창간의 이동

Ctrl + F7 : View 이동 메뉴

Ctrl + F8 : Prespectives 이동 메뉴

Ctrl + D : 한라인 삭제 - 커서가 위치한 라인 전체를 삭제 한다.

Ctrl + J : Incremental find 이클립스 하단 상태 표시줄에 Incremental find 라고 표시되어 한 글자자씩 누를 때 마다 코드내의 일치하는 문자열로 이동 , 다시 Ctrl + J 를 누르면 그 문자열과 일치 하는 부분을 위/아래 방향키로 탐색이 가능하다.

Ctrl + N : 새로운 파일 / 프로젝트 생성

Ctrl + 1 (빠른교정) - 문 맥에 맞게 소스 교정을 도와 준다. 변수를 선언하지 않고 썼을경우 빨간색 에러 표시되는데 이 단축키를 적용하면 변수에 맞는 선언이 추가 되도록 메뉴가 나타난다.

Ctrl + 0 : 클래스 구조를 트리로 보기

Ctrl + Space :  Cotent Assist - 소스 구문에서 사용 가능한 메소드, 멤버들의 리스트 메뉴를 보여준다.

Ctrl + PageUp , Ctrl + PageDown : Edit 창 좌우 이동 - Edit 창이 여러개 띄워져 있을경우 Edit 창간의 이동 한다.

Ctrl + Shift + Down : 클래스 내에서 다음 멤버로 이동

Ctrl + Shift + M : 해당 객체의 Import 문을 자동 생성 - import 추가 할 객체에 커서를 위치 시키고 단축키를 누르면 자동적으로 import 문이 생성

Ctrl + Shift + O : import 문을 자동 생성 - 전체 소스 구문에서 import 안된 클래스의 import 문을 생성해 준다.

Ctrl + Shift + G : 해당 메서드 / 필드를 쓰이는 곳을 표시 - View 영역에 Search 탭에 해당 메서드 / 필드를 사용하는 클래스를 표시 해준다.

Alt + Shift + R : Refactoring (이름변경) - Refactoing 으로 전체 소스에서 이름변경에 의한 참조 정보를 변경해 준다.

F3 : 선언 위치로 이동

F11 : 디버깅 시작

F8 : 디버깅 계속

F6 : 디버깅 한줄씩 실행(step over)

F5 : 디버깅 한줄씩 실행 함수 내부로 들어감 (step into)

F12 : Editor 창으로 이동 (Debugging 등 자동적으로 포커스가 이동 됐을경우 편리)

Alt + Up , Alt + Down : 줄 바꿈 - 해당 라인을 위 / 아래로 이동 시킨다.

Alt + Shift + S : Source Menu - 소스메뉴 (Import 추가 , Comment 추가 , 각종 Generator 메뉴) 가 나타난다.

Alt + Shift + Up : 블록설정 - 소스 코드를 블록 단위로 설정해 준다.

Alt + Shift + Down : 블록해제 - 소스 코드를 블록 단위로 해제한다.

Alt + Shift + J : 주석 생성 - 해당 메서드/클래스에 대한 주석을 템플릿을 생성해 준다.

sysout + (Ctrl + Space) : System.out.println() 문장 삽입 - 코드 템플릿을 이용해서 소스 구문을 추가

(Windows -> Preferences -> JAVA -> Editor -> Templates 에서 자주 쓰는 소스 구문을 추가시키면 <템플릿 이름> + (Ctrl + Space) 로 소스 문장을 완성 시킬 수 있다.)

Alt + Shift + Z : Surround With 메뉴 - try / catch 문이나 for , do , while 등을 해당 블록에 감싸주는 메뉴가 나타난다.

Ctrl + Shift + F : 코드 포맷팅 - 코드 내용을 문법 템플릿에 맞게 포맷팅(들여쓰기) 해준다.

Ctrl + Alt + Down: 한줄 복사후 아래에 복사 넣기 - Copy&Paste 대체하는 단축키. 커서가 위치한 라인을 복사해 밑줄에 생성해 준다.

Ctrl + Shift +X : 대문자로 변환

Ctrl + Shift + Y : 소문자로 변환

Ctrl + Shift + L : 모든 단축키의 내용을 표시해준다.

Ctrl + Shift + B : 현재 커서 라인에 Break point 설정

Ctrl + Shift + T : 클래스 찾기

Posted by 에시드 :