JSTL과 EL의 차이점


JSP를 사용하면 사용하게 되는 EL과 JSTL이있습니다.


EL은 Expression Language를 뜻하고


JSTL은 JSP Standard Tag Library를 뜻합니다.



EL예제


<% = test %>
${test}

위와 같은 형태로 작성되는것을 EL이라고 한다.


JSTL예제


<c:if test=""></c:if>
<c:forEach items=""></c:forEach>


위와 같은 형태로 작성하는 문법을 JSTL이라고 한다.


보통 우리가 쓰는 JSTL에서는 JSTL안의 변수에 EL을 담아서 쓰고 있다고 생각하면 된다.


그 예제는 다음과 같다.


JSTL + EL 예제



<c:forEach items="${array}" var="el" varStatus="idx">
  <p>${el.text}<p>
</c:forEach>



EL의 연산자 종류

연산부호 

 연산자

 +

-

 *

 /

 div 

 &&

and 

|| 

 or 

 ==

eq 

!= 

ne 

ge 

lt 

<= 

ge 

>= 

le 



주의할 점 

문자열에 대해서는 + 연산자는 할 수 없다.


따라서 다음과 같은 방법으로 표현한다.


<c:forEach items="${array}" var="el" varStatus="idx">
  <p>${idx.index} : ${el.text}<p>
</c:forEach>


JSTL CORE종류


<c:set> 

 변수명에 값을 할당

 <c:out>

 값을 출력

 <c:if>

 조건식에 해당하는 블럭과 사용될 scope설정

 <c:choose>

 다른 언어의 switch와 비슷 

 <c:when>

 switch문의 case에 해당

 <c:otherwise>

 switch문의 default에 해당

 <c:forEach>

 다른언어의 loop문 items 속성에 배열을 할당할 수 있음


주로 사용하는 것은 위와 같다.



다음엔 JSTL의 커스텀에 대해서 적어봐야겠다. 



'JAVA' 카테고리의 다른 글

[JAVA] null 체크  (0) 2017.12.13
[JAVA] 패스워드 정규식 (Regex)  (1) 2017.12.05
[JSTL]choose와 when, otherwise 사용법  (0) 2017.11.23
[JSTL]fmt:formatNumber  (0) 2017.11.22
VO, Map 객체 JSON 으로 변환  (0) 2017.11.19

jQeury AJAX 예제


jQuery.ajax(url, [setting]) 또는 jQeury.ajax([setting])으로 사용합니다.


HTTP 리퀘스트에 대해 비동기 동작을 합니다.



속성값으로는 다음이 사용됩니다.


 속성

 값

 url

 리퀘스트 보내게 되는 URL 값을 Stirng으로 입력합니다.

 accepts

 서버에서 전송 받을 MIME type을 Object방식으로 설정 합니다.

 async

 기본값은 true이며 비동기 방식으로 진행할 건지에 대한 셋팅입니다.

 beforeSend

 리퀘스트 보내기전에 작동하는 함수를 입력합니다.

 complete

 성공, 실패, 에러등 모든 상황이 종료된 이후의 함수를 입력합니다.  

 data

 리퀘스트 URL과 함께 입력될 데이터를 Object, Array, String 형식으로 입력합니다.

 method(type)

 리퀘스트전송에 대한 메소드 타입을 입력합니다. (예 : "GET" , 또는 "POST" 등) 

 error 전송이 완료된 후 에러상황에 대한 함수를 입력합니다. 

 success

 전송이 완료된 후 성공상황에 대한 함수를 입력합니다.



속성값은 더 많이 있지만 자주 사용하는 속성들은 이 정도에서 크게 벗어나지 않습니다.


기본 예제코드

$.ajax({
  url: "/json/people",
  data : {"id" : "admin"},
  beforeSend: function( xhr ) {
    console.log('리퀘스트 보내기 전에 데이터 조작가능');
  },success: function(d){
    console.log('서버에서 받은 데이터 = ' + d);
  }, error : function(e){
    console.error('에러발생');
  }
})


ajax를 통해 DOM을 추가하는 예제


$.ajax({
  url: "test.html",
  cache: false
}).done(function( html ) {
    $( "#results" ).append( html );
  });
});


위의 예제는 test.html이 동적으로 작동한다는 가정을 하고 cache를 false로 하고 사용하였습니다.

브라우저의 cache내용을 받지 않고 서버에서 새로 받아오겠다고 이해하면 됩니다.


그리고 ajax가 종료되면 done함수의 results 엘리먼트에 서버에서 받아온 HTML을 엘리먼트 뒤에 추가(append) 하게 됩니다.

MySQL 기본 쿼리(SELECT)


select 쿼리

select문은 하나이상의 행을 테이블에서 검색하는데 사용하며 하위쿼리(subQuery)를 사용할 수 있다.
select문은 테이블을 참조하지 않고 계산용으로도 사용할 수 있다.

SELECT 

    [컬럼명] 

FROM 

    [테이블명] 

WHERE 

    [조건]

AND

    [조건] 

GROUP BY [컬럼명] 

ORDER BY [컬럼명] [ASC | DESC]

LIMIT [행 수] OFFSET [시작 행 수]


select 쿼리 예제


SELECT
    idx,
    name,
    type,
    age,
    gender,
    birthday
FROM USER_TABLE
WHERE type = 'A'
ORDER BY idx ASC
LIMIT 0, 10
-- 또는 LIMIT 10 OFFSET 0


테이블을 참조하지 않은 select 쿼리 


SELECT
    1+1 AS result
FROM dual;

SELECT
    NOW()
FROM dual;

위의 쿼리는 숫자를 계산한 값을 결과로 얻는것이고

두번째 쿼리는 현재 시스템 시간을 얻는 쿼리 이다.

주의


페이징을 사용할 때에는 꼭 인덱스가 잡혀있는 테이블로 order by를 해서 가지고 옵시다.
그렇게 하지 않으면 테이블 Full scan이 일어나 DB성능에 영향을 줍니다.


'DATABASE' 카테고리의 다른 글

[MySQL] Select Insert문  (0) 2017.12.26
[MySQL] String Replace  (0) 2017.12.20
[오라클] DATE 날짜 타입  (2) 2017.12.11
[MySQL]기본쿼리 (UPDATE)  (0) 2017.12.08
[ORACLE] 모든 테이블 이름 가져오는 쿼리  (0) 2017.12.05

+ Recent posts