JSP 39 JSTL fmt 태그를 이용한 다국어 처리 + 코어(core) 태그

백엔드/JSP|2021. 3. 30. 11:42

jstl.jar 을 다운받아, lib 폴더에 붙여넣기 한다.

jstl-1.2.jar
0.40MB

참고> 만약 jstl-1.2.jar이 작동하지 않으면,

이클립스안에서 작업폴더 오른쪽 마우스 → Properties Java Build Path Modulepath클릭 Add JARs → jstl-1.2 jar 찾아서 OK → Apply →Apply and Close

 

 

태그를 사용자 임의 정의해서 사용할 수 있다. prefix 에서 태그를 fmt로 설정하였다. 

 

번들파일은 영어, 라틴어, 숫자만 표현할 수 있고, 나머지 언어는 유니코드 값으로 표현

 

 

라이브러리: 클래스들을 모아 놓은 것

var을 쓰면, 리소스번들의 키값이 var로 들어간다. 안쓰면 key값 그냥 출력된다.

다국어 처리하는 페이지 중요한 페이지다. 응용할 줄 알아야한다. 

 

아래부터는 이런게 있다 정도만 알고 참고해라.

value 값은 적용할 대상. 파싱이라고 한다. 파싱할 적용할 대상.

 

 

 

 

 


JSTL을 사용하려면 JSP 상단에 다음과 같이 선언

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

 

코어테그

 

변수 지원 : set(변수설정), remove(변수삭제)

흐름 제어 : if(조건문), choose(다중조건), forEach(컬렉션이나 Map 항목처리), forTokens(구분자로 분리)

URL 처리 : import(url 사용), redirect(지정한 경로로 리다이렉트), url(url을 재작성)

기타 태그 : catch(익셉션처리), out(JSPWriter에 내용출력)

 

가장 많이 쓰이는 코어테그

1. if 태그

<c:if test="$(조건문)">

</c:if>

if 태그 사용 예

Scriptlet <% Object obj = session.getAttribute("user"); // user가 로그인 유무 확인할 때 사용 (서버에서 user 세팅)
      if (obj != null) { // user가 로그인을 하면
            User user = (User) obj; %> 
<p>아이디 : <%=user.getId() %>, 이름: <%=user.getName()%></p>
<%}%>
JSTL + EL <c:if test="${!empty sessionScope.user }">
<p>아이디: ${sessionScope.user.id}, 이름: ${sessionScope.user.name}</p> //sessionScope은 써주는게 좋다.
</c:if>

 

2. forEach 태그

<c:forEach var="객체 1개를 담은 변수" items="${리스트 객체}"> //${ } 은 EL이다. 

</c:forEach>


scope Class 설명
Web context(Application) javax.servlet.ServletContext 애플리케이션 전역, 애플리케이션 전체에서 접근 가능한 영역
Session javax.servlet.http.HttpSession 세션 영역, 세션별로 접근 가능한 영역
Request jaavax.servlet.ServletRequest 한번의 요청이 처리될 동안 유효한 영역
Page javax.servlet.jsp.JspContext JSP 페이지 영역

 

EL(Expression Language)

$(expression)

내장객체

pageScope page 영역의 attribute들을 저장한 맵
requestScope request 영역의 attribute들을 저장한 맵
sessionScope session 영역의 attribute들을 저장한 맵
applicationScope application 영역의 attribute들을 저장한 맵
param request 파라미터를 저장한 맵
pageContext request, session 등에 접근을 제공

 

* request parameter를 꺼내는 경우

Scriptlet <% = request.getParameter("name") %>
EL ${ param.name }

 

* request attribute를 꺼내는 경우

Sciptlet <% Student student = (Student) request.getAttribute("student"); %>
<%=student.getId() %>
EL $(requestScope.student.id) 또는 $(student.id} 
*pageScope(잘안쓰임)→ requestScope(대부분) → sessionScope →applicationScope 순으로 찾는다.

 

[295 page] 코어태그 예제

예제 12.1> <c:if> 태그의 사용 예제

 

예제 12.2> <c:choose> 태그의 사용 예제

 

예제 12.3> <c:forEach> 태그의 사용 예제

 

예제 12.4> <c:forTokens> 태그의 사용 예제

 

예제 12.5> <c:url> 태그의 사용 예제

예제 12.6> <c:out> 태그의 사용 예제

예제 12.7> <c:catch> 태그의 사용 예제

댓글()
구독