[JSP] JavaBean
JavaBean?
- Java를 이용하여 만든 재사용 가능한 Component
- 입력 받은 값에 대한 유효성 체크나 Logic을 가지고 있는 클래스
- MVC(Model View Controller) 패턴의 Model에 해당함.
[생성]
<jsp:useBean id="reference명" type="Super_Class명" class="package.Class명" scope="page"/>
- type는 Base_Class을 넣는다. (생략 가능)
- class는 상속받는 Class 사용.
- default scope는 page (생략 가능)
- 동일한 id가 존재하지 않는 경우에만 생성되며, 동일한 id가 있는 경우 사용하는 명령으로 처리
[입/출력]
<jsp:useBean id="reference명" type="Super_Class명" class="package.Class명" scope="page"/>
<jsp:setProperty property="setter 메서드" name="reference명"/>
<!-- 기타 -->
<jsp:setProperty property="setter 메서드" name="reference명" param="parameter명" value="값"/>
<jsp:getProperty property="getter 메서드" name="reference명"/>
[Tip]
- 다형성
BeanBase 창식 = new Member(); //JSP
public abstract class BeanBean //super Class
public class Member extends BeanBase //Java Bean Class
- <%= reference명 %>시 class에서 toString()를 Override하여 return을 받는 식으로 사용
[참고 소스]
[Cal.jsp]
<jsp:useBean id="calc" class="Calculator.CalculatorBean"/>
<jsp:setProperty property="*" name="calc"/>
<%-- <% calc.calculate(); %> --%>
<form name=form1 method="post">
<input type="text" name="num1" width=200 size="5">
<select name="operator">
<option selected>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input type="text" name="num2" width=200 size="5">
<input type="submit" value="계산" name="B1">
</form>
<%=calc %>
</body>
</html>
[CalculatorBean.java]
package Calculator;
public class CalculatorBean {
private int num1, num2;
private String operator = "";
private int result;
public void setNum1(String num1) {
this.num1 = Integer.parseInt(num1);
}
public void setNum2(String num2) {
this.num2 = Integer.parseInt(num2);
}
public void setOperator(String operator) {
if(!operator.equals(null))
{
this.operator = operator;
calculate();
}
}
public void calculate()
{
if(operator.equals("+"))
{
result = num1 + num2;
}
//...
}
@Override
public String toString()
{
return "계산 결과 :: " + Integer.toString(num1)+operator+Integer.toString(num2)+"= "+Integer.toString(result);
}
}