ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP 액션 태그 (Action Tag)
    JSP 2019. 1. 29. 22:03

    JSP 액션 태그 (Action Tag) 란 무엇일까?


    JSP 액션 태그는 XML 기술을 이용하여 

    기존의 JSP 문법을 확장하는 메커니즘을 제공하는 태그이다.

    웹 브라우저에서 실행되는 것이 아닌 웹 컨테이너에서 실행되고 결과만 브라우저로 보내준다.


    JSP 에서 기본으로 제공하는 태그는 다음과 같다.


    태그명

    설명 

     

    jsp:include


     현재 페이지에 특정 페이지를 포함할 때 사용 

     

    jsp:forward 


     현재 페이지 접근 시 특정 페이지로 이동 (request.forward() 와 동일하다) 


     jsp:param


     <jsp:include>, <jsp:forward>의 하위요소로 사용되며, 

     해당 페이지에 전달할 값을 기록할 때 사용 

     

    jsp:usebean 


     Java Bean 객체를 사용하기 위한 태그이다. 


     jsp:setProperty

     

     Java 객체 사용 시 Setter와 동일한 역할이다. 


     jsp:getProperty

     

     Java 객체 사용 시 Getter와 동일한 역할이다. 



    <jsp:include>

    <%@ include file = "파일명"%> 과 쓰임은 동일하다.

    <jsp:include page="파일명"/> 으로 사용한다.


    하지만 지시자는 jsp 파일이 java 파일로 변환될 때 삽입되지만

    jsp:include 태그는 jsp파일이 java 파일로 컴파일 완료되어 런타임 시 삽입된다.


    따라서 지시자로 사용한 것처럼 다른 파일에 있는 변수를 사용할 수 는 없다.


    하지만 파라미터로 페이지가 열릴 때 다른 파일에 데이터를 줄 수 있다는 장점이 있다.


    <jsp:include page="파일명">

    <jsp:param name="str" value="안녕하세요">

    </jsp:include>


    이렇게 데이터를 전송할 수 있다.




    <jsp:forward>

    하나의 JSP 페이지에서 다른 JSP 페이지로 요청 처리를 전달할 때 사용한다.

    request, response 객체가 같이 전달되며 URL은 변경되지 않는다.


    사용법은 <jsp:forward page="파일명"/> 이다.


    <jsp:useBean>

    java class를 참조하여 빈 객체를 생성하고 setProperty 와 gerProperty를 통해

    값을 저장, 조회할 수 있다.


    사용법은 다음과 같다.

    <jsp:useBean id="객체명" class="패키지명.클래스명" scope="범위지정자"/>


    id는 식별할 수 있는 유일한 명칭이다.

    scope 는 page, request, session, application 범위를 지정한다.



    <jsp:setProperty>

    자바빈 객체의 속성 값을 설정하거나 수정할 때 사용한다.

    <jsp:setProperty name="객체명" property="맴버변수명" value="값" param="request param명"/> 이런 형식으로 사용한다.


    name 은 객체 명으로 <jsp:useBean> 에서 id값과 동일한 값을 입력한다.

    property 는 객체의 맴버 변수의 이름이고 value는 수정할 값을 입력한다.

    param 은 request 속성에 있는 param의 값이랑 일치하는 값을 불러와 수정값으로 사용할수 있으며

    param="*" 으로 입력하면 

    request객체에 저장된 param 값과 일치하는 맴버변수의 값을 전부 변경한다.


    <jsp:getProperty>

    자바빈 객체의 속성을 가져올 때 사용한다.

    <jsp:getProperty name="객체명" property="맴버변수명"/> 으로 사용한다.

    name 은 setProperty 처럼 <jsp:useBean> 에서 id값과 동일한 값을 입력한다.

    property 는 객체의 맴버 변수의 이름이다.


    위에서 설명한 jsp:useBean 의 간단한 예제이다.

    일단 간단하게 Person 클래스를 만들었다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class Person {
        private String name;
        private int age;
        private String gender;
        
        public Person() {
        }
            
        public Person(String name, int age, String gender) {
            super();
            this.name = name;
            this.age = age;
            this.gender = gender;
        }
     
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getGender() {
            return gender;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
    }
    cs

    이 Person 클래스를 JSP 파일에서 불러와 사용해보자

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <body>        
        <jsp:useBean id="p" class="action.model.vo.Person">
            <jsp:setProperty property="name" value="홍길동" name="p"/>
            <jsp:setProperty property="age" value="26" name="p"/>
            <jsp:setProperty property="gender" value="남" name="p"/>
        </jsp:useBean>
            이름: <jsp:getProperty property="name" name="p"/><br/>
            나이: <jsp:getProperty property="age" name="p"/><br/>
            성별: <jsp:getProperty property="gender" name="p"/><br/>
    </body>
    cs
    이런 식으로 jsp 파일 내에서 값을 저장하고 불러올 수도 있으며


    서블릿에서 request로 전송한 값 또한

    1
    2
    3
    Person p = new Person("홍길동"26"남");
    request.setAttribute("person", p);
    request.getRequestDispatcher("/views/useBean/personView.jsp").forward(request, response);
    cs
    1
    2
    3
    4
    <jsp:useBean id="person" class="action.model.vo.Person" scope="request"/>
            이름: <jsp:getProperty property="name" name="person"/><br/>
            나이: <jsp:getProperty property="age" name="person"/><br/>
            성별: <jsp:getProperty property="gender" name="person"/><br/>
    cs



    받아서 처리할 수 있다.



    반응형

    'JSP' 카테고리의 다른 글

    JSTL fmt 태그 사용하기  (0) 2019.02.02
    JSTL core tag 사용하기  (0) 2019.01.31
    JSP JSTL 추가하기  (0) 2019.01.30
    JSP EL(Expression Language)  (0) 2019.01.30

    댓글

Designed by Tistory.