<div id="bbsTotalDiv">

        <ul id="divList">

            <li id="shareFileList">

                <a href="<c:url value="/bo/bbs/main/tab/AR_searchList.do"/>?bbsCd=${Bbs.BBS_SHARE_FILE}">                     <span onclick="jsMove('shareFileList');">공유 파일</span></a>

            </li>

            <li id="mediaList">

                <a href="<c:url value="/bo/bbs/main/tab/AR_searchList.do"/>?bbsCd=${Bbs.BBS_MEDIA}">

                <span onclick="jsMove('mediaList');">언론보도</span></a>

            </li>

            <li id="photoList">

                <a href="<c:url value="/bo/bbs/main/tab/AR_searchList.do"/>?bbsCd=${Bbs.BBS_EVENT_PHOTO}">                   <span onclick="jsMove('photoList');">행사사진</span></a>

            </li>

            <li id="movieList">

                <a href="<c:url value="/bo/bbs/main/tab/AR_searchList.do"/>?bbsCd=${Bbs.BBS_MOVIE}">

                <span onclick="jsMove('movieList');">동영상</span></a>

            </li>

            <li id="shareImgList">

                <a href="<c:url value="/bo/bbs/main/tab/AR_searchList.do"/>?bbsCd=${Bbs.BBS_SHARE_IMG}">                       <span onclick="jsMove('shareImgList');">공유 이미지</span></a>

            </li>

            <li id="prList">

                <a href="<c:url value="/bo/bbs/main/tab/AR_searchList.do"/>?bbsCd=${Bbs.BBS_PR}">

                <span onclick="jsMove('prList');">광고/홍보물</span></a>

            </li>

        </ul>

    </div>


- li  리스트가 이렇게 있으면.. 선택시 이벤트를 주고 (jsMove) Jquery 에서 순서변경

- Jquery 함수

var jsMove = function(id) {

    $("#" + id).prependTo("#divList");

};


* 속성값

- begin : 반복에 사용될 것 중 첫번째 항목의 Index. 0부터 시작한디 정의되지 않으면 0

- end : 반복에 사용될 것 중 마지막 항목의 Index. 정의되지 않으면 목록의 갯수에서 1개 뺀 값이겟죠.(Index 는 0부터)

- step : 반복할 때 마다 건너 뛸 Index 갯수. for 문의 i값에 더해지는 것과 같은 개념. 기본은 1


* 속성 중 varStatus 값

- Index : 숫자값을로 items 에 정의된 목록(Collection)의 항목을 가리키는 Index (0부터 시작)

- Count : 숫자값. 루프 돌떄 현재 몇 번째 반복인지를 나타낸다. (1부터 시작)

- First : boolean 값. 현재 반복이 첫번째인지 판단

- Last: boolean 값. 현재 반복이 마지막인지 판단


* EX

<c:forEach items="${dataBean.tagNms}" var="tagNm" varStatus="status">

    ${tagNm}<c:if test="${status.last eq false}">,</c:if>

</c:forEach>


- dataBean.tagNms 가 String[] 인데.. 화면에 보여줄때 콤마(,) 를 찍어줄건데 마지막값에는 콤마(,) 안 찍게 할려고

   ${status.last} 로 확인


   이거할려고 찾아본거니까...ㅡ,.ㅡ;;

'공부 > JSTL' 카테고리의 다른 글

JSTL_[ Function(fn) 기초문법 ]  (0) 2013.03.26
JSTL_ [ Core(c) 기초문법 ]  (0) 2013.03.26
JSTL_[ Web.xml에 taglib element 추가하기 ]  (0) 2013.03.26

날자를 입력하는 폼을 사용할때(DatePicker) 이런걸 사용할때...

하루전/한달전/1년전 모 이런거 사용하자나 쉽게 자바스크립트로 계산하는 방법

오늘날짜 기준으로 특정날짜 계산


        /* 날짜계산 */

        var jsDateCalculation = function(date, term) {

            

            var selectDate = date.split("-");

            var changeDate = new Date();

            

            if( term == 'day' ) {

   // 하루전

                changeDate.setFullYear(selectDate[0], selectDate[1]-1, selectDate[2]-1);

            }

            if( term == 'week' ) {

               // 일주일전

                changeDate.setFullYear(selectDate[0], selectDate[1]-1, selectDate[2]-7);

            }

            if( term == 'month' ) {

                changeDate.setFullYear(selectDate[0], selectDate[1]-2, selectDate[2]);

            }

            if( term == 'year' ) {

               // 일년전

                changeDate.setFullYear(selectDate[0]-1, selectDate[1]-1, selectDate[2]);

            }

            

            var y = changeDate.getFullYear();

            var m = changeDate.getMonth() + 1;

            var d = changeDate.getDate();

            

            if(m < 10) { 

                m = "0" + m;

            }

            if(d < 10) {

                d = "0" + d;

            }

            var resultDate = y + "-" + m + "-" + d;

            return resultDate;

        };

* EL 비교연산자

연산자

설명

 eq

 ==

 ne

 !=

 lt

 <

 gt

 >

 le

 <=

 ge

 >=

- JSP 에서 <c:if ~> 로 무언가를 할때 eq , ne 마니쓰는데 밑에 꺼는 좌/우를 자꾸 헷갈려서 다시 보는김에 정리

- 컴파일러가 일반적으로 경고하는 내용 중 제외시킬때 쓰인다.(경고제외)


- 옵션

1. all : 모든 경고를 억제

2. cast : 캐스트연사자 관련 경고억제

3. dep-ann : 사용하지 말아야 할 주석관련 경고억제

4. deprecation : 사용하지 말아야 할 메서드관련 경고억제

5. fallthrough : switch 문에서의 break 누락관련 경고억제

6. finally : 반환하지 않는 finally 블럭관련 경고억제

7. null : null 분석관련 경고억제

8. rawtypes : 제네릭을 사용하는 클래스 매개변수가 불특정일때의 경고억제

9. unchecked : 검증되지 않은 연산자관련 경고억제

10. unused : 사용하지 않는 코드관련 경고억제


- 예 ) @SuppressWarnings("unchecked")

지역변수와 관련이 있는 건데.. 우선

예제)

<script>

// 함수 선언

function text(name) {

var output = 'Hello' + name + '...!';

}

// 출력

alert(output);

</script>

 

위의 예제 함수안에 있는 변수는 지역변수 이므로, 함수 외부에서 사용할 수 없습니다.(alert)

지역변수는 함수가 실행될때 생성되고 함수가 종료될 때 사라진다. 하지만, 클로저란? 것을 사용하면 이 규칙을 위반할 수 있다.

 

예제)

<script>

// 함수선언

function outerFunction(name) {

var output = 'Hello' + name + '...!';

return function() {

return output;

}

}

// 변수선언

var first = outerFunction('JavaScript');

var second = outerFunction('jQuery');

// 출력

alert(first);

alert(second);

</script>

 

이걸 가능하게 하려고 클로저 함수 사용

 

    // 숫자인지 체크
    public boolean isNumeric(String str) {

        Pattern pattern = Pattern.compile("[+-]?\\d+");
        return pattern.matcher(str).matches();
    }

 

- 보더(border)의 두께(width) 관련속성



  • 속성 : border-top-width, border-right-width, border-bottom-width, border-left-width
  • 값 : thin, medium, thick, 길이, inherit
  • 기본값 : medium
  • 적용대상 : 모든 요소


값은 공백문자로 구분하여 복수지정 가능하며 지정하는 값에 따라 적용대상이 달라진다.

  • 값이 한 개 : '상하좌우'
  • 값이 두 개 : '상하' '좌우'
  • 값이 세 개 : '상' '좌우' '하'
  • 값이 네 개 : '상' '우' '하' '좌'


- 보더(border)의 스타일(style) 관련속성



  • 속성 : border-top-style, border-right-style, border-bottom-style, border-left-style
  • 값 : none, hidden, dotted, dashed, solid, double, groove, ridge, inset, outset, inherit
  • 기본값 : none
  • 적용대상 : 모든 요소


none
hidden
dotted
dashed
solid
double
groove
ridge
inset
outset



값은 공백문자로 구분하여 복수지정 가능하며 지정하는 값에 따라 적용대상이 달라진다.



  • 값이 한 개 : '상하좌우'
  • 값이 두 개 : '상하' '좌우'
  • 값이 세 개 : '상' '좌우' '하'
  • 값이 네 개 : '상' '우' '하' '좌'


보더(border)의 색(color) 관련속성



  • 속성 : border-top-color, border-right-color, border-bottom-color, border-left-color
  • 값 : 색, transparent, inherit
  • 기본값 : 색상 속성의 값
  • 적용대상 : 모든 요소


값은 공백문자로 구분하여 복수지정 가능하며 지정하는 값에 따라 적용대상이 달라진다.

  • 값이 한 개 : '상하좌우'
  • 값이 두 개 : '상하' '좌우'
  • 값이 세 개 : '상' '좌우' '하'
  • 값이 네 개 : '상' '우' '하' '좌'


- 보더(border)의 일괄지정



사방 보더(border)의 두께,스타일,색 속성의 일괄 지정이 가능하며 복수지정도 가능하고 순서를 따지지 않으며 생략 가능하다.

보더 관련 속성은 값을 상속하지 않으므로 값을 생략한 때에는 기본값을 지정한 것으로 인식한다.
사방에 모든 보더를 지정한 뒤 좌우의 보더를 개별적으로 설정이 가능하다. 하지만 우선순위 규칙이 적용되서 중첩될경우 나중에 지정한 스타일이 덮어쓰여진다.

 

'공부 > CSS' 카테고리의 다른 글

CSS_[RGB 색상표 보기]  (0) 2015.07.30

플러그인 인스톨


Help - Install New Software 클릭




http://download.aptana.com/studio3/plugin/install 입력




Next


Next



이클리스를 재시작






Install Aptana Features


Install Aptna Features 를 클릭




Ajax Libraries - jQuery Support 를 선택 후 Install 버튼을 클릭




Ajax Frameworks - Aptana Support for jQuery 선택 후 Next 버튼을 클릭




Finish 클릭




플러그인 설치 - 이클립스 재시작 후 WIndow - Preferences 클릭




Aptana - Editors - JavaScript - Code Assist 메뉴에서 jQuery를 선택







만약 편집기가 설치 전의 그냥 보통 편집기일 경우 설정에서 변경해줘야 합니다.




오랜만에 모사이트에 가서 글을 보다가...

 

String과 StringBuffer에 대한 논쟁이 한참 불붙은 것을 보았습니다.

 

글쓴 사람들 보니까 좀 안다는 사람들 모여서 열띤 토론을 벌이더군요.

 

 

간단히 생각하면 될 문제를 복잡하게 생각하니 배가 산으로 갑니다.

 

 

String이나 StringBuffer나 뭘쓰면 어떻습니까... 성능문제는 성능에 문제가 될때만 발생하는 겁니다.

 

물론 성능이 좋을 수록 좋겠지만... 필요이상으로 성능에 집착하는 것은 낭비입니다.

 

 

제 의견을 말씀드리겠습니다.

 

String이나 StringBuffer나 모두 문자 배열입니다.(char[])

 

 

배열의 특징을 잘아시겠지만, 한번 생성하면 크기를 늘일 수 없어서 크기를 늘이려면 새로운 배열을 만들어야 합니다.

 

String은 변경할 수 없으니 문자열 결합이 일어날때마다 항상 새로운 배열을 만들고 복사하는 과정을 거칩니다.

 

이과정은 여유있는 크기의 배열(StringBuffer)의 내용을 변경하는 것과는 큰 성능 차이가 있습니다.

 

 

하지만, 너무 여유있는 크기의 배열을 생성하면, 메모리의 낭비가 있겠죠.(StringBuffer의 단점)

 

또한 아무리 StringBuffer라고 해도 크기를 작게 잡아놓으면 String쓰는거나 별다른게 없을 수도 있습니다.

(새로운 크기의 배열을 생성하고 복사해야하므로... 그래도 String보다는 StringBuffer가 낫습니다.)

 

 

그래도... 대부부의 경우, StringBuffer를 사용하는 것이 String을 쓰는 것보다 훨씬 빠릅니다.(문자열 편집에 관한한)

 

일부 경우에서는 String이 StringBuffer보다 빠를 수는 있지만, 대부분의 경우 당연하게도 StringBuffer가 빠를 수

 

밖에 없습니다. 배열의 특징이 그렇기 때문이죠.

 

 

한가지 알아야할 것은 String에 대한 +연산을 컴파일러가 StringBuffer로 자동변환해준다는 것입니다.

 

그러니 항상 StringBuffer대신 String을 써도 별 문제 없다고 하는 사람이 있지만... 컴파일러의 자동변환에도 한계가 있습니다.

 

String에 +연산을 사용하는 모든 경우를 커버할 수는 없다는 얘기죠.

 

 

그래서... 웬만하면 문자열 결합에 String을 그냥 사용해도 된다.(컴파일러가 자동변환해서 최적화 해주니까.)

 

성능상의 문제가 되는 경우에만 StringBuffer를 이용해서 최적화한다.

 

모든 곳에 String대신 StringBuffer를 사용하면 가독성이 떨어지니까...(코드를 읽기 힘들어지니까.)

 

출처 : 남궁성 자바카페

 

+ Recent posts