프로그래밍 언어/자바 웹

<c:set> 태그를 이용한 실습(2)

· 코딩마이데이

이번에는 태그를 이용해 너무 길어서 사용하기 불편한 변수나 속성 이름을 간결하게 만들어 보겠습니다. 먼저 JSP에서 태그를 이용해 다른 페이지로 이동하는 방법입니다. 지금까지는 표현 언어로 pageContext.request.contextPath 같은 긴 속성을 그대로 사용했는데, <c:set> 태그를 이용하면 긴 이름의 속성이나 변수를 줄여서 사용할 수 있습니다.

 

<a href="${pageContext.request.contextPath}/memberForm.jsp">회원가입하기</a>

 

로그인창에서 회원 가입창으로 이동할 때 미리 <c:set> 태그를 이용해 pageContext.request.contextPath 속성 이름을 contextPath로 줄여서 사용하고 있습니다. 복잡한 웹 페아지에서 속성 이름을 짧게 줄이면 코드의 가독성이 좋아집니다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
     isELIgnored="false"  %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"  %>
<c:set var="contextPath" value="${pageContext.request.contextPath}"/>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>로그인창</title>
</head>
<body>
	<form action="result.jsp">
		아이디 : <input type="text" size=20 /><br>
		비밀번호: <input  type="password"  size=20 /><br>
		<input  type="submit" value="로그인" /> <input type="reset" value="다시입력"  />
	</form> 
   <br><br>
   <%-- 
	<a href="${pageContext.request.contextPath}/memberForm.jsp">회원등록하기</a>
 --%>
	<a href="${contextPath}/test03/memberForm.jsp">회원등록하기</a>
	   
</body>
</html>

 

이번에는 <c:set> 태그를 이용해 바인딩된 속성 이름이 긴 경우 더 짧은 변수로 대체해서 사용하는 방법을 알아보겠습니다.

 

${membersMap.membersList[0].id}

 

속성 이름이 길면 사용하기가 불편하고 가독성도 떨어집니다. 그래서 미리 <c:set> 태그를 이용해 사용하기 편리한 이름인 membersList로 설정한 후 인덱스를 이용해 회원 정보를 출력했습니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    import="java.util.*, sec01.ex01.*"
    pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
	request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="membersList" class="java.util.ArrayList" />
<jsp:useBean id="membersMap" class="java.util.HashMap" />
<%	
    membersMap.put("id", "park2");
    membersMap.put("pwd", "4321");
    membersMap.put("name", "박지성");
    membersMap.put("email", "park2@test.com");
    MemberBean m1 = new MemberBean("son", "1234", "손흥민", "son@test.com");
	MemberBean m2 = new MemberBean("ki", "4321", "기성용", "ki@test.com");
    membersList.add(m1);
    membersList.add(m2); 
    membersMap.put("membersList",  membersList);  
%>
<c:set var="membersList" value="${membersMap.membersList}"/>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>회원 정보 출력창</title>
</head>
<body>
	<table border=”1”  align="center" >
	    <tr align=center bgcolor="#99ccff">
	      <td width="20%"><b>아이디</b></td>
	      <td width="20%"><b>비밀번호</b></td>
	      <td width="20%" ><b>이름</b></td>
	      <td width="20%"><b>이메일</b></td>
		</tr>
		<tr align=”center”>
		      <td>${membersMap.id}</td>
		      <td>${membersMap.pwd}</td>
		      <td>${membersMap.name}</td>
		      <td>${membersMap.email }</td> 
		</tr>
		    <tr align=”center”>
		      <td>${membersList[0].id}</td>
		      <td>${membersList[0].pwd}</td>
		      <td>${membersList[0].name}</td>
		      <td>${membersList[0].email}</td>
		   </tr>
		   <tr align=”center”>
		      <td>${membersList[1].id}</td>
		      <td>${membersList[1].pwd}</td>
		      <td>${membersList[1].name}</td>
		      <td>${membersList[1].email}</td>
		</tr>
	</table>
</body>
</html>

 

다음은 실행 결과입니다.

실행 결과