1월 17일(2)

오늘 배운 것

  • JSTL 사용해보기



JSTL 사용하기

JSTL을 다운받아 C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib 주소에 JSTL파일을 넣어야함
JSTL을 사용하기 위해서는 아래의 코드를 servlet 파일에 추가를 해야함
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

  • 변수 사용시 ${ } 사용해야함
    JSTL은 <c 를 사용함
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 출력 태그 -->
<c:out value="JSTL 안녕!"></c:out>

<!-- JSTL로 빈 객체 사용 -->
<jsp:useBean id="test" class="beans.TestBean" />
<p> getInfo메소드 : <c:out value="${test.info }" />   <!-- 중괄호 안에는 변수 혹은 객체-->

<!-- parameter 가져오기 -->
<p> parameter : <c:out value="${param.name}"/><!--param은 parameter -->
<br>
<br>
<!-- IF문 -->
<c:if test="${param.name == 'bob'}"> <!-- else문이 없음  -->
	헬로우 bob
</c:if>
<c:if test="${param.name != 'bob'}">
	YOU ARE NOT bob!
</c:if>
<br>
<br>
<!-- SWITCH문 JSTL choose, when(케이스), otherwidse(디폴트) -->
<c:choose>
	<c:when test="${param.id == 1}">
		<b>ID는 1</b>
	</c:when>
	<c:when test="${param.id == 2}">
		<b>ID는 2</b>
	</c:when>
	<c:otherwise>
		<b>ID는 1 또는 2가 아니다.</b>
	</c:otherwise>
</c:choose>
<br>
<br>
<!-- 반복문 -->
<c:forEach var="i" begin="0" end="10" step="2"> <!-- 변수 i가 0부터 10까지 2씩 증가 -->
	i의 값 : <c:out value="${ i }"/> <br>
</c:forEach>
</body>
</html>

@WebServlet("/Pass")
public class PassObjects extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 각각의 user 객체들을 다른 scope로 전달
		User user1 = new User("Bob", 1);
		User user2 = new User("Mike", 2);
		User user3 = new User("Sue", 3);
		
		// Request scope
		request.setAttribute("user1", user1);
	
		// Session scope
		HttpSession session = request.getSession();
		session.setAttribute("user2", user2);
		
		// Context scope
		ServletContext context = getServletContext();
		context.setAttribute("user3", user3);
		
		//map list 객체 보내기
		Map<String, String> map = new HashMap<>();
		map.put("fruit1", "apple");
		map.put("fruit2", "orange");
		
		request.setAttribute("maplist", map);
		
		//Arraylist
		List<User> list = new ArrayList<User>();
		
		list.add(new User("dog", 1));
		list.add(new User("cat", 2));
		list.add(new User("cow", 3));
		
		session.setAttribute("list", list);
	
		request.getRequestDispatcher("/receiveObjects.jsp").forward(request, response);
	}

}
  • 제일 아래에는 request, session, context
    두번째는 session, context
    세번째는 context만 출력됨

  • JSTL은 java에서처럼 get,set메소드를 만들필요 없이 바로 출력가능
    반복문을 이용해 TABLE(표)의 내용을 채울 수 있음

좋은 웹페이지 즐겨찾기