티스토리 뷰
JSTL
:사용자가 직접만들어서 쓸 수 있는 costom tag 중 많이 쓰는것들을 모아 표준으로만든것.
태그를 사용하려면 taglib 지시자를 선언해줘야됨
ex) 웬만하면 c(코어)쓰고 잘 안바꾼다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
#코어태그
1)
<c:set var="변수명" value="값" [scope="영역"] />
ex)
<c:set var="a" value="bbb"/>
<c:set var="a">bbb</c:set>
둘다 똑같은 밑의 효과
var a=bbb;
출력 : ${a}--> bbb
2)
<c:set target"대상" property="프로퍼티이름" value="값" />
target: 표현식(<%=%>) or EL(${}) 형식 (자바빈,map만 받음)
property: 자바빈:set이름() , map map.put(이름,값) 을 제공받아야된다.
3)
<c:remove var="이름" [scope="영역"] />
4) if문 비슷
<c:if test="조건">
...
</c:if>
5) swich랑 else if 섞은느낌
<c:choose>
<c:when test="조건">
...
</c:when>
...
<c:otherwise>
...
</c:otherwise>
</c:choose>
6) for문 비슷
<c:forEach var="변수" items="아이템" begin="시작" end="끝" varStatus="이름">
...
</c:forEach>
items--> map,배열,Collection 만 올 수있음
varStatus : 루프정보를 담는 객체
-index : 현재인덱스
-count : 루프 실행 횟수
-begin : begin 속성값
-end : end 속성값
-step : step 속성값
-first : 현재 실행이 처음일 경우 true
-last : 현재 실행이 마지막일 경우 true
-current : 컬렉션 중 현재 루프에서 사용할 객체
실전예제 1)
top.jsp 태그로다바꾸기
---------------------
<%
String id="Guest";
if(session.getAttribute("id")!=null) id=(String)session.getAttribute("id");
%>
<div align="center">TOP</div> <br>
<div align="right"><%=id%>님 즐거운 시간!!</div>
바꾼거
-----------------------
<c:set var="id" value="Guest" scope="session"/>
<c:if test="${sessionScope.id}!=null">
<c:set var="id" value="${sessionScope.id}" />
</c:if>
<div align="center">TOP</div> <br>
<div align="right"> ${id} 님즐거운 시간!!</div>
실전예제 2)
menu.jsp
==========================
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
int num=0;
if(application.getAttribute("activeCNT")!=null){
num=(int)application.getAttribute("activeCNT");
}
%>
총방문자수 : <br>
현재접속자수:<%=num%><br>
<%
if(session.getAttribute("id")==null){
%>
<a href="t1.jsp?cp=loginForm.jsp">로그인</a>
<% }else{ %>
<a href="logout.jsp">로그아웃</a>
<% } %>
바꾼거
===============================
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="num" value="0" />
<c:if test="${applicationScope.activeCNT != null}">
<c:set var="num" value="${applicationScope.activeCNT}" />
</c:if>
총방문자수 : <br>
현재접속자수:${num}<br>
<c:if test="${sessionScope.id == null}">
<a href="t1.jsp?cp=loginForm.jsp">로그인</a>
</c:if>
<c:if test="${sessionScope.id != null}">
<a href="logout.jsp">로그아웃</a>
</c:if>
실전예제3)
mvc의 list.jsp 바꾸기
=============================================
<%
List<MemberBean> list=(List<MemberBean>)request.getAttribute("memberList");
for(MemberBean bean:list){
out.println(bean.getId()+"<br/>");
}
%>
바꾼거
==========================================
<h1>회원리스트</h1>
<c:forEach var="bean" items="${requestScope.memberList}">
${bean.id}<br/>
</c:forEach>
실전예제4)
mvc의 list2.jsp 바꾸기
====================
<%
ListForm listform=(ListForm)request.getAttribute("listform");
List<MemberBean> list=(List<MemberBean>)listform.getList();
int num=listform.getStartrow();
for(MemberBean bean:list){
out.println((num++)+" : ");
out.println(bean.getId()+"<br/>");
}
int pagenum=listform.getPagenum();
String str="/mvc1/member/list2.do?pn="+(pagenum-1);
if(listform.isPrevious())
out.println("<a href="+str+"> << </a>");
int sp=listform.getStartpage();
int ep=listform.getEndpage();
for(int pn=sp; pn<=ep; pn++){
str="/mvc1/member/list2.do?pn="+pn;
out.println("<a href="+str+">");
out.println(pn+"</a> ");
}
str="/mvc1/member/list2.do?pn="+(pagenum+1);
if(listform.isNext())
out.println("<a href="+str+"> >> </a>");
%>
바꾼거
=====================
<c:set var="num" value="${requestScope.listform.startrow}"/> //requestScope 생략가능
<c:forEach items="${listform.list}" var="bean">
${num} ${bean.id}<br/>
<c:set var="num" value="${num+1}" />
</c:forEach>
<c:set var="pagenum" value="${listform.pagenum}"/>
<c:if test="${listform.previous}">
<a href="${pageContext.request.contextPath}/member/list2.do?pn=${pagenum-1}"> << </a>
</c:if>
<c:forEach var="pn" begin="${listform.startpage}" end="${listform.endpage}">
<a href="${pageContext.request.contextPath}/member/list2.do?pn=${pn}"> ${pn}</a>
</c:forEach>
<c:if test="${listform.next}">
<a href="${pageContext.request.contextPath}/member/list2.do?pn=${pagenum+1}"> >> </a>
</c:if>
'VIEW > JSP&SERVLET' 카테고리의 다른 글
[JSP] 어노테이션(annotation) (0) | 2017.12.01 |
---|---|
[JSP] 국제화태그,필터 (0) | 2017.12.01 |
[JSP] <jsp:useBean>,Cookie,EL (0) | 2017.12.01 |
[JSP] preventDefault,stopPropagation,$.param(),폼태그전송방식,serialize(),serializeArray() (0) | 2017.12.01 |
[JSP] jqgrid (0) | 2017.12.01 |