갈림길 이정표

[JSP] 레코드 단위 처리 Bean (Form Bean) 본문

Programming Language/Servlet & JSP

[JSP] 레코드 단위 처리 Bean (Form Bean)

이몽뇽 2020. 8. 26. 19:45

[para2Exam.html]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>레코드 단위 처리 BEANS (Form bean)</title>
</head>
<body>
* 성적 자료 입력 *<br>
<form action="para2Exam.jsp" method="post">
이름: <input type="text" name="name" value="홍길동"><br>
국어: <input type="text" name="kor" value="90"><br>
영어: <input type="text" name="eng" value="80"><br>
<br>
<input type="submit" value="전송">
</form>
</body>
</html>
더보기
[ExamFormBean.java]

package pack;

public class ExamFormBean {	//FormBean: 클라이언트로 부터 여러개의 값을 레코드 단위로 받아 처리할 목적인 클래스
	private String name;	
	private int kor, eng;  //숫자는 int로 받을 수 있지만 연산 목적이 아니라면 그냥 String 도 괜찮.
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getKor() {
		return kor;
	}
	public void setKor(int kor) {
		this.kor = kor;
	}
	public int getEng() {
		return eng;
	}
	public void setEng(int eng) {
		this.eng = eng;
	}
	
	//이외 business logic 메소드 쓰는 것은 비권장
}
[ExamProcess.java]

package pack;

public class ExamProcess {	//Business Logic 담당 클래스
	private ExamFormBean formBean;
	
	public void setFormBean(ExamFormBean formBean) {
		this.formBean = formBean;
	}
	
	public int getTot() {
		return formBean.getKor() + formBean.getEng();
	}
	
	public double getAvg() {
		return getTot() / 2.0;
	}
}

[para2Exam.jsp]

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
/*String name = request.getParameter(name);
.
.
Beans 쓰면 부질 없는 짓*/
%>
<jsp:useBean id="bean" class="pack.ExamFormBean"/>	<!-- import 할 필요 없음 (프리Path?) -->
<%--<jsp:setProperty property="name" name="bean"/>
<jsp:setProperty property="kor" name="bean"/>
.
.
Form Bean 쓰면 부질 없는 짓--%>

<jsp:setProperty property="*" name="bean"/>	<!-- 이름 규칙을 잘 맞춰 썼다면 알아서 찾아 들어감 (자동화) ※setter만 가능 -->
<%-- (확인용)
System.out.println(bean.getName());
System.out.println(bean.getKor());
System.out.println(bean.getEng());
--%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
Form bean 연습
이름은 <jsp:getProperty property="name" name="bean"/><br>
국어: <jsp:getProperty property="kor" name="bean"/><br>
영어: <jsp:getProperty property="eng" name="bean"/><br>

<jsp:useBean id="examProcess" class="pack.ExamProcess"/>
<%--<jsp:setProperty property="formBean" name="examProcess"/>	클라이언트로부터 받을 때 --%>
<jsp:setProperty property="formBean" name="examProcess" value="<%=bean %>"/>	<!-- 서버 내에서 처리한 결과를 받을 때 -->
총점: <jsp:getProperty property="tot" name="examProcess"/>
평균: <jsp:getProperty property="avg" name="examProcess"/>
</body>
</html>

'Programming Language > Servlet & JSP' 카테고리의 다른 글

[JSP] Bean으로 DB 연결 (feat. 향상된 for문)  (0) 2020.08.26
[JSP] (problem) Form Bean  (0) 2020.08.26
[JSP] Bean을 통한 값 전달  (0) 2020.08.26
[JSP] javaBeans *개념 미완성*  (0) 2020.08.26
[JSP] Session test  (0) 2020.08.26
Comments