JSP Action이란?
<jsp:useBean id="이름" scope="page | request | session | application" class="클래스명" type="타입명" />
자바 코드(<%%> 등)를 사용하지 않고 JSP액션 태그를 사용하여 웹 개발을 할 수 있도록 해준다.
Scope 속성으로 사용 범위를 지정해줄 수 있으며, id 속성으로 변수 이름을 지정하여 다른 곳에서 getAttribute()로 값을 꺼내어 사용 할 수 있다.
[ 대표적인 액션태그 ]
액션 | 설명 |
<jsp:useBean> | 자바 인스턴스를 준비한다. 보관소에서 자바 인스턴스를 꺼내거나 자바 인스턴스를 새로 만들어 보관소에 저장하는 코드를 생성한다. (자바 인스턴스 = Java Bean) |
<jsp:setProperty> | 자바 빈의 프로퍼티 값을 설정한다. 자바 객체의 settet()를 호출하는 코드를 생성한다. |
<jsp:getProperty> | 자바 빈의 프로퍼티 값을 꺼낸다. 자바 객체의 getter()를 호출하는 코드를 생성한다. |
<jsp:include> | 정적(HTML, 텍스트 파일 등) 또는 동적(서블릿/JSP) 자원을 including하는 자바 코드를 생성한다. |
<jsp:forward> | 현재 페이지의 실행을 멈추고 다른 정적, 동적 자원으로 forwarding하는 자바 코드를 생성한다. |
<jsp:param> | jsp:include, jsp:forard, jsp:params의 자식 태그로 사용한다. ServletRequest 객체에 매개변수를 추가하는 코드를 생성한다. |
<jsp:plugin> | OBJECT 또는 EMBED HTML 태그를 생성한다. |
<jsp:element> | 임의의 XML |
(참고 사이트)
JSP 액션 태그와 jsp:useBean 사용 예제
JSP Action이란? JSP에서 기본으로 제공하는 태그들의 집합을 'JSP Action'이라 한다. JSP Action은 각 태그에 맞는 자바 코드로 변환된다. 즉 JSP Action 태그를 사용하지 않더라도 스크립트릿 에 자바 코드
atoz-develop.tistory.com
예제
예제1) 기본예제 이해하기 <jsp:useBean>, <jsp:setProperty>, <jsp:getProperty>
(Ex1.java)
package actionTag;
public class Ex1 {
private String data;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
(form_ex1.jsp)
<body>
<form action="beans_ex1.jsp">
전달한 데이터 : <input type="text" name="data">
<input type="submit" value="전송">
</form>
</body>
(beans_ex1.jsp)
<!-- 객체생성 : Ex1 ex1 = new Ex1(); -->
<jsp:useBean id="ex1" class="actionTag.Ex1"/>
<!-- ex1.setData(data) -->
<!-- java ex1 클래스파일에 setData()메소드명을 set제거 후 소문자로 property에 지정해줌. -->
<jsp:setProperty property="data" name="ex1"/>
<!-- ex1.getData(); -->
전달받은 데이터 : <jsp:getProperty property="data" name="ex1"/>
예제2) jsp액션태그로 파라미터 값 받는방법(+ 한꺼번에 받기)
(Ex2.java)
package actionTag;
public class Ex2 {
private String id;
private String pw;
private String confirmPw;
private String name;
private String email;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getConfirmPw() {
return confirmPw;
}
public void setConfirmPw(String confirmPw) {
this.confirmPw = confirmPw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
(form_ex2.jsp)
<body>
<form action="beans_ex2.jsp" method="post"><br>
<input type="text" name="id" placeholder="아이디" /><br>
<input type="password" name="pw" placeholder="비밀번호" /><br>
<input type="password" name="confirmPw" placeholder="비밀번호 확인" /><br>
<input type="text" name="name" placeholder="이름" /><br>
<input type="text" name="email" placeholder="이메일" /><br>
<input type="submit" value="회원 가입" /><br>
<input type="reset" value="취소" />
</form>
</body>
(beans_ex2.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:requestEncoding value="utf-8"/>
<jsp:useBean id="ex2" class="actionTag.Ex2" scope="page"/>
<jsp:setProperty property="*" name="ex2"/>
아이디 : ${ex2.getId()}<br>
비밀번호 : ${ex2.pw}<br>
비밀번호 확인 : ${ex2.confirmPw}<br>
이름 : ${ex2.name}<br>
이메일 : ${ex2.email}<br>
<!--
<jsp:setProperty property="id" name="ex2"/>
<jsp:setProperty property="pw" name="ex2"/>
<jsp:setProperty property="confirmPw" name="ex2"/>
<jsp:setProperty property="name" name="ex2"/>
<jsp:setProperty property="email" name="ex2"/>
아이디 : <jsp:getProperty property="id" name="ex2"/><br>
비밀번호 : <jsp:getProperty property="pw" name="ex2"/><br>
비밀번호 확인 : <jsp:getProperty property="confirmPw" name="ex2"/><br>
이름 : <jsp:getProperty property="name" name="ex2"/><br>
이메일 : <jsp:getProperty property="email" name="ex2"/><br>
-->
<!-- JSP액션태그는 get호출 메소드를 객체명.파라미터명만 입력해주면 호출하도록 해준다. -->
'Programming > JSP' 카테고리의 다른 글
[JSP] RequestDispatcher().forward(); (0) | 2022.10.14 |
---|---|
[JSP] Redirect와 forward의 차이점(+sendRedirect ) (0) | 2022.10.14 |
[JSP] JSTL와 JAR 다운방법 (0) | 2022.10.13 |
[JSP] 표현언어(EL, ${ })과 Scope(객체범위) (0) | 2022.10.12 |
[JSP] Tomcat을 이용한 Eclipse 웹 자바 개발환경 세팅하기 (0) | 2022.09.07 |