-
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 클래스를 만들었다.
12345678910111213141516171819202122232425262728293031323334public 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 파일에서 불러와 사용해보자
이런 식으로 jsp 파일 내에서 값을 저장하고 불러올 수도 있으며12345678910<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 서블릿에서 request로 전송한 값 또한
123Person p = new Person("홍길동", 26, "남");request.setAttribute("person", p);request.getRequestDispatcher("/views/useBean/personView.jsp").forward(request, response);cs 1234<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