프로그래머/JAVA

[JSP] JavaBean

얼짱가면 2013. 3. 29. 11:02

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);

        }

}