Search

'Java'에 해당되는 글 22건

  1. 2012.04.18 Java Generic
  2. 2012.04.18 JSTL (JSP Standard Tag Library) 1차 정리

Java Generic

Java/기본 2012. 4. 18. 11:31 Posted by 퓨어레드

Java Generic

-       개발팀 남한희 대리

1.     Generic 이란?

A.     Java 5.0 부터 지원한 Generic 이란 데이터 형을 템플릿화 하여 좀 더 세련된 코딩을 할 수 있게 해주는 개발 편의 문법

B.      데이터 형을 Templete 한다는 데 가장 큰 의미가 있다.

2.     데이터 형이 결정되지 않는 개발..

A.     보통의 자료 구조에선 여러 데이터형을 처리할수 있어야 하기 때문에 데이터 형을 결정하지 못하는 경우가 많다.

B.      그렇기 때문에 데이터형을 결정하지 못한다면 최상위 객체인 Object 형을 사용하여 하위 캐스팅을 하여 사용 했다.

C.      Object 형을 사용 하였을 경우 가장 큰 문제점은 하위 캐스팅에 대한 부담감이다.

D.     하위 캐스팅을 잘못하였을 경우 Exception 이 발생되기 때문이다.

E.      그렇기 때문에 여러 데이터형을 지원하는 자료구조들도 5.0 이후에는 제너릭을 지원하게 되었다.

3.     문법

A.     클래스를 정의하는 부분에 제너릭 타입을 정의한다.
class MyData<T>

 

B.      T 라는 제너릭이 생성 되었다.

                         i.         사용 할때는 T 로 사용한다.

class MyData<T>
{
    T getData ()
    {
    }

    void setData (T abc)
    {
    }
}



C.      클래스 생성

- 제너릭을 정확히 명시해준다.

MyData<String> myData = new MyData<String> ();

// JDK1.8 부터는 생성객체에는 열거 안해도 된다.
MyData<String> myData = new MyData<> ();

 

 

4.     Generic 이 무조건 답은 아니다.

A.     항상 꼭 Generic 을 사용 하는게 정답은 아니다. 데이터 형이 애매한 경우는 Object 를 사용하고 한번에 한 데이터 형을 결정 해야 하는 경우는 Generic 을 사용하면 매우 깔끔한 코딩을 할 수 있다.

 

B.      Object, Generic 은 개발자의 선택의 문제이므로 개발자가 판단하여 결정하도록 한다.

 

'Java > 기본' 카테고리의 다른 글

Java.. 레이블된 break, continue  (0) 2012.04.18
현재 사용하는 OS 이름 가져오기  (0) 2012.04.18
ByteStream  (0) 2012.04.18
Method 동적 호출  (0) 2012.04.18
자바 타이머 기능  (0) 2012.04.18

JSTL (JSP Standard Tag Library) 1차 정리

Java/JSP 2012. 4. 18. 11:28 Posted by 퓨어레드

JSTL (JSP Standard Tag Library)

-       개발팀 남한희 대리

 

1.     JSTL 이란..

A.     EL 로 표현 불가능한 로직 적인 처리에 필요한 표준 라이브러리

2.     JSTL 선언

A.     <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

3.     <c:out> 태그

A.     문자열을 출력해주는 태그, 여러 부가 기능들이 있다.

B.      value : 출력할 값
escapeXml : (true, false) HTML
태그를 변환 시킨다.
default :
기본 출력 값
.

C.      <c:out value='${data1}' escapeXml = 'true' default = 'baseStr' />

D.     Default 는 다음과 같이 출력 가능
<c:out value='${data1}'>baseStr</c:out>

4.     <c:forEach> 태그

A.     컬랙션 데이터를 루핑한다.

B.      items : 컬랙션을 돌릴 데이터
var :
루프된 값을 담을 변수명
varStatus :
루핑 횟수 알기.
begin :
루프의 시작 Index (선택적
)
end :
루프의 종료 Index (선택적
)
step :
루프 증가 수
..

C.      forEach 는 중첩해서 사용 가능한다.

D.     <c:forEach var = "data" items="${datas}" varStatus="loopCount">
${loopCount.count} : ${data} <Br />
</c:forEach>

5.     <c:if> 태그

A.     조건을 처리한다.

B.      test : 조건식 (true, false 로 리턴해야 한다.)

C.      EX

                         i.         <c:if test="${data eq 'member'}">
</c:if>

6.     <c:choose> 태그

A.     조건을 분기하여 처리한다.

B.      <c:when> : 하나하나의 조건 - 사용법은 <c:if> 와 똑같다 (else if 의 의미)

C.      <c:otherwise> : 위의 when 에서 조건이 걸리지 않았을 경우 (else 의 의미)

D.     Ex)
<c:choose>
<c:when test="${data eq 'test'}">
</c:when>
<c:when test="${data eq 'test2'}">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>

7.     <c:import> 태그

A.     외부 컨텐츠의 내용을 불러와서 박는다.

B.      url : 파일명 또는 외부 URL
외부 URL 에 있는 Content 를 불러올때 유용..

C.      <c:import url="Header.jsp">
<c:param name="title" value="Test Title" />
</c:import>

8.     <c:url> 태그

A.     <c:url value="URL " />

B.      URL 인코딩을 하려면
<c:url value="/inputComments.jsp" var="inputURL">
<c:param name = "firstName" value="${first}" />
<c:param name = "lastName" value="${last}" />
</c:url>

C.      사용시 : ${inputURL}

9.     <c:catch> 태그

A.     Exception 을 잡을 수 있다.

B.      <c:catch var="myException">
명령어

</c:catch>

<c:if test="${myException != null}">
.. Exception
발생 코드..
</c:if>

 

'Java > JSP' 카테고리의 다른 글

fmt:formatDate 쓰기  (0) 2012.11.02
JSTL 에서 List Size 구하기..  (0) 2012.05.03
EL 중 list 데이터 존재 여부 확인  (0) 2012.05.02
No-Cache 설정  (0) 2012.05.02
EL  (0) 2012.04.18