15주차 - jsp (12) Action Tag - 2.2

2022. 10. 14. 21:12jsp/jsp

이번의 목표

01. <jsp:setProperty>, <jsp:getProperty>의 코드를 간략하게하여 가독성을 높여보자


01. <jsp:setProperty>, <jsp:getProperty> 의 코드를 간략하게하여 가독성을 높여보자

지난시간에는 사용자가 입력한 데이터들을 name값마다 가져와 저장하여 출력하는 예제를 만들어봤습니다.

이번에는 지난 시간의 코드를 보다 짧고 간결하게 만들어 가독성을 높이는 방법에 대해 알아보겠습니다.

 

<jsp:setProperty> 태그를 사용할때 property의 값을 받고자하는 데이터의 name 값으로 하나씩 받는 방법도 있습니다.

하지만 그 데이터가 너무 많을 경우에는 일일이 입력하기에는 코드도 길고 가독성이 떨어지게 됩니다.

그럴때에는 property="*" 만 입력한다면 전달받은 파라미터의 값들을 모두 변수에 저장할 수 있습니다.

사용 예시는 아래와 같습니다.

<jsp:setProperty property="*" name="변수"/>

 

이와 마찬가지로 <jsp:getProperty>도 EL표현식을 사용하여 코드를 간결하게 만들 수 있습니다.

<jsp:useBean>으로 만든 빈을 el에서 바로 불러와 사용이 가능하기 떄문입니다.

사용 예시는 아래와 같습니다.

${변수.값}

 

01. 데이터 전송 페이지 코드
02. 데이터 출력 페이지 코드
03. 사용된 클래스 코드
04. 실행 화면

 

01. 데이터 전송 페이지 코드

	<form action="beans_ex02_B.jsp" method="post"><br>
		<input type="text" name="id" placeholder="아이디"><br>
		<input type="password" name="pw" placeholder="비밀번호"><br>
		<input type="password" name="confirmPw" placeholder="비밀번호 확인"><br>
		<input type="text" name="name" placeholder="이름"><br>
		<input type="text" name="email" placeholder="이메일"><br>
		<input type="submit" value="회원 가입">
		<input type="reset" value="취소">
	</form>

02. 데이터 출력 페이지 코드

	<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
	
	<fmt:requestEncoding value="utf-8"/>
	
	<jsp:useBean id="ex02" class="actionTag.ex02" />
	
	<!-- 모든 요소들을 저장하는 * -->
	<jsp:setProperty property="*" name="ex02"/>
	
	아이디 : ${ex02.getId()}<br> <!-- setter/getter를 사용할수도 있지만 굳이 코드를 길게할 필요는 없다. -->
	비밀번호 : ${ex02.pw}<br>
	비밀번호 확인 : ${ex02.confirmPw}<br>
	이름 : ${ex02.name}<br>
	이메일 : ${ex02.email}<br>

03. 사용된 클래스 코드

package actionTag;

public class ex02 {
	private String id;
	private String pw;
	private String confirmPw;
	private String name;
	private String email;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPw() {
		return pw;
	}

	public void setPw(String pw) {
		this.pw = pw;
	}

	public String getConfirmPw() {
		return confirmPw;
	}

	public void setConfirmPw(String confirmPw) {
		this.confirmPw = confirmPw;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
	
}

04. 실행 화면