@ 주제 

util 태그 라이브러리의 사용

 

@ 목적 

태크라이브러리를 이해하고 사용하기 위함 

 

@ 내용 

jsp "${util:getCodeList('블라블라' ) } 의사용 설명

 

util.tld - 들어간다.

<?xml version="1.0" encoding="UTF-8" ?>

 

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"

  version="2.0">

    

  <description>Sting Utils</description>

  <display-name>Sting Utils</display-name>

  <tlib-version>1.1</tlib-version>

  <short-name>util</short-name>

 

  -  function-class에 정의한 클래스에서 getCodeList 메서드에서 리턴해주는 값을 가져올 수 있다.

  -  jsp에서  "${util:getCodeList('블라블라' ) } 이렇게 쓰면 컨트롤러에서 담아올 필요 없이 값을 클래스에서 바로 가져와 쓸 수 있음.

  

<function>

    <name>getCodeList</name>

    <function-class>kr.co.amorepacific.recruit.foundation.util.CodeTag</function-class>

    <function-signature>java.lang.String getCodeList(java.lang.String)</function-signature>

  </function>

 

'기능 정리' 카테고리의 다른 글

자바스크립트가 할 수 없는 것들  (0) 2020.08.13
Same-Origin Policy  (0) 2020.08.12
JSTL 이란  (0) 2020.08.11
JSTL Function (prefix : fn) 정리합니다.  (0) 2020.08.11
JSTL: fmt 사용법  (0) 2020.08.11

@ 주제 

 

JSTL: fmt 사용법

 

@ 목적 

JSTL: fmt 사용법을 알아본다 

 

@ 내용 

JSTL: fmt

국제화 및 지역화 태그로 다국어 문서를 처리할 때 유용하고, 날짜와 숫자 형식을 다룰 때 사용된다. I18N - 국제화(Internationalization) 태그라고도 한다.

기능: 지역, 메시지 형식, 숫자 및 날짜형식

선언 : <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

 

requestEncoding

request.setCharacterEncoding() 역할이 같다.

<fmt:requestEncoding [value="charsetName"]/>

 

setLocale

다국어를 지원하는 페이지를 만들때 ResourceBundle로 불러오는 properties 파일들과 연계하여 사용한다.

<fmt:setLocale value="locale"   [variant="variant"] [scope="{page|request|session|application}"]/>

<pre>

<%=response.getLocale()%> <!-- ko_KR -->

 

<fmt:setLocale value="ko"/>

<%=response.getLocale()%> <!-- ko -->

<fmt:setLocale value="ja"/>

<%=response.getLocale()%> <!-- ja -->

<fmt:setLocale value="en"/>

<%=response.getLocale()%> <!-- en -->

</pre>

 

 

bundle

properties 확장자를 사용하는 자원 파일을 읽어오는 역할을 한다.

<fmt:bundle basename="basename" [prefix="prefix"]>

     body content

</fmt:bundle>

basename 속성에 지정된 properties 파일을 찾아서 locale에 따라 읽어들인다.  

 

properties 파일은 보통 WEB-INF/classes 아래에 위치하며 디렉토리의 깊이에 따라서 패키지형식의 이름을 취한다. TestBundle.properties 파일이com/itexpert/test/msg 디렉토리에 있다면 basename="com.itexpert.test.msg.TestBundle"  이라고 지정하면 된다.

 

locale이 ko라면 TestBundle_ko.properties 파일을 읽어오게 되며, locale이 맞지 않는 경우에는 TestBundle.properties처럼 코드가 붙지 않은 파일을 읽어온다.

 

prefix 속성은 key 명칭이 공통적인 부분을 지정해서 body에서 표현되는 key를 단축시킨다. import 에서 패키지 명을 지정하면 클래스명만 쓸 수 있는 것과 같이 생각할 수  있다.

 

 

setBundle

페이지 전체에서 사용할 수 있는 번들을 지정한다. var 속성에 명시한 변수를 <fmt:message/>태그에서 basename 속성으로 대체할 수 있다.

 

<fmt:setBundle  basename="basename"

        [var="varName"]

        [scope="{page|request|session|application}"]/>

 

 

message

프로퍼티즈에  사용할 값들을 적어 놓은 뒤  여러 페이지에서 사용하고자 할때  사용하면 좋아유

여러 페이지에 사용되는 값들을 하나의 파일을 수정하므로 모두 적용할 수 있으니

다양한 곳에서 사용되는 같은 값들은  프로퍼티즈에  작성한 후 사용하면 편합니다.

 

 

<fmt:setLocale value="en"/>

<fmt:setBundle basename="com.tutorialspoint.Example" var="lang"/>

<fmt:message key="count.one" bundle="${lang}"/><br/>

<fmt:message key="count.two" bundle="${lang}"/><br/>

<fmt:message key="count.three" bundle="${lang}"/><br/>

해당 번들에 작성되어있는 count.one 의 값을 가져온다 .  

formatNumber

parseNumber

formatDate

parseDate

setTimeZone, timeZone

 

'기능 정리' 카테고리의 다른 글

Same-Origin Policy  (0) 2020.08.12
util 태그 라이브러리의 사용  (0) 2020.08.11
JSTL 이란  (0) 2020.08.11
JSTL Function (prefix : fn) 정리합니다.  (0) 2020.08.11
Json 정리  (0) 2020.08.11

@ 주제

JSTL Core 정리 

 

@ 목적 

JSTL Core에 대해 알아본다 

 

@ 내용 

(1) Core  (prefix : c)

 

→ 일반 프로그래밍에서 제공하는 것과 유사한 변수선언

 

→ 실행 흐름의 제어 기능을 제공

 

→ 페이지 이동 기술 제공

 

URI → http://java.sun.com/jsp/jstl/core

 

 

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

 

EL사용을 위함 :<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" isELIgnored="false"%>

페이지를 인코딩하는 부분 마지막에 isELIgnored="false" 를 추가하면 EL을 사용할 수 있게 됩니다.

1. <C:set>

사용범위에 맞는 위치에 선언해주세요~

자바의 int num = 100; 을 <c:set var="num" value="100"> 로 쓸 수 있습니다. 선언한 값은 ${num} 으로 해당 페이지 내에서 사용가능합니다.

 

2. <c:out>

 

system.out.println(" 안녕하세요 ");을 간단하게 <c:out value=" 안녕하세요 "> 표현가능 이 태그는 특수문자를 그대로 출력합니다.

 

3. <c:remove>

 

한 영역의 변수명을 지우는 코드입니다. 만약에 영역을 생략할 경우 모든 영역의 변수가 삭제됩니다.

 

Attribute에서 정리했다 시피 (page → request → session → application) 순서의 영역을 가집니다.

 

 

 

4. <c:if>

 

자바의 if - else 문과 동일하지만 JSTL에서는 else문이 없습니다. 여기서 scope값을 생략하면 기본으로 page영역이 지정됩니다.

else 처리를 하고 싶거든 5번 참조~~

 

5. <c:choose> / <c:when> / <c:otherwise> <- 이게 else 처리를 가능케함

 

자바의 switch 구문과 if-else 구문을 혼합한 형태로 다수의 조건문을 걸고 싶을때 사용합니다.

 

6. <c:forEach>

 

자바에서는 for문으로 불리던게 JSTL에서는 forEach로 변경되었습니다. 배열이나 컬렉션, Map에 저장되어 있는 값들을 순서대로 처리 할때 사용되며, <c:forEach var=" i" begin=" 1 " end=" 10 " step=" 1 "> ${ i } </c:forEach>로 i가 1부터 10까지 1씩 증가한다는 구문을 쉽게 만들 수 있습니다.

<c:forEach items="${Member (리스트 또는 내가 출력하고자하는 값을 담은 변수)  }" var="item" varStatus="st">    

    만약 Member는 vo 이며 name 이라는 getter setter 을 가지고 있다면

    ${item.name} 로 Member.getName()을 출력할 수 있다 .

</c:forEach>

 

7. <c:forTokens>

 

자바의 StringTokenizer 를 JSTL를 사용하면 아주 간편하게 사용할 수 있습니다.

 

<c:forTokens var="abc" items="안녕/하세요/hunit블로그/입니다" delims="/" >이렇게 코드를 작성할 수 있겠죠.

 

 

8. <c:catch>

 

try{

     자바에서는 여기에 행동    

    } catch (Exception err){

            에러내용 표시

     }

  <c:catch var= "abc ">

      JSTL에서는 여기에 행동

  </c:catch>

      태그 밖에 ${abc}를 사용하여 에러내용

자바의 Try-catch 구문과 같음. 단 <c:catch>태그는 에러내용을 ${abc}로 빼내서 처리해줘야 합니다.

 

 

9. <c:redirect>는 아래와 같이 파라미터 값을 지정된 url로 보냅니다.

 

<c:redirect url="baordList.jsp">

 

<c:param name="abc" value="안녕하세요" />

 

</c:redirect>

 

 

10. <c:import>는 <jsp:include>와 비슷합니다.

 

 

 

11. <c: url>은 <c:set>과 비슷하며 GET방식으로 파라미터를 전달합니다.

 

 

 

+ Recent posts