본문 바로가기

📚Study Note/JSP Servlet

[ JSP & Servlet ] JSP 액션태그 │ <jsp:useBean> │ <jsp:setProperty>

첫 번째 페이지에서 두 피연산자와 연산자를 받아 결과값을 두 번째 페이지에 출력하기 위해서는

우선 Calc 라는 클래스를 만들어뒀는데 주요 속성들이 private 으로 선언되어 있고

getter 와 setter 를 generate 했으며

result() 라는 Calc 클래스의 메소드는 연산 결과 값을 String 으로 반환해준다. ( 예를 들어 "2 + 2 = 4")

 

 

이전까지는 이전 페이지로부터 getParameter() 로 값을 받아 그것을 Calc 객체를 생성해서 setter 로 각 변수값을 설정해준 뒤 연산한 결과값을 받았다면

 

<jsp:useBean id="ob" class="com.test.Calc" scope="page"/>

이 액션태그를 통해서 ob 라는 Calc 객체가 생성이 되고 (scope="page" 이 부분?)

<jsp:setProperty property="*" name="ob"/>

위 액션태그를 통해서는 ob 객체의 속성들을 이전 페이지의 name 속성값들의 이름에서 같은 부분을 골라서 넣어준다.

 심지어 형변환도 해준다.

이전 페이지에서 name="키우는_고양이" 라는 속성을 가진 텍스트박스에 2 라고 입력

Calc 의 private int 키우는_고양이 (변수명과 name이 같다!)

setProperty 를 통해서 키우는_고양이 라는 변수에 2가 대입된다. 

 

<!-- ★★★★★ -->
<!-- 속성 이름과 동일한 파라미터명인 경우 getParameter() 메소드 없이 바로 받을 수 있다. -->

 

 

이렇게 객체의 속성을 각각 지정해줘도 되지만 property="*" 하게 된다면 모든 파라미터명(name) 과 이름이 같은 속성을 set 하게 된다. 이게 편하니까~