JSP 39 JSTL fmt 태그를 이용한 다국어 처리 + 코어(core) 태그
jstl.jar 을 다운받아, lib 폴더에 붙여넣기 한다.
참고> 만약 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> 태그의 사용 예제
'백엔드 > JSP' 카테고리의 다른 글
JSP 41 선언적 시큐리티 처리 (0) | 2021.03.31 |
---|---|
JSP 40 시큐리티 개요 (0) | 2021.03.31 |
JSP 38 Locale 클래스를 이용한 다국어 처리 (4) | 2021.03.30 |
JSP 37 다국어 처리의 개요 (0) | 2021.03.30 |
JSP 36 데이터 형식 유효성 검사 (4) | 2021.03.29 |