2019. 11. 12. 16:41ㆍ🔴 JSP웹개발
액션태그 :
JSP내에서 자바코드를 효율적으로 작성하게 도와주는 기본 태그 라이브러리
- include
<%@ include file = "경로명"%>
<jsp: include page = "경로명"%>
- forward
<jsp: forward page = "포워딩할 페이지"%>
: 요청을 다른 JSP으로 전달하는 것, 페이지의 기능을 분리할 때 사용
(일부 로직만 처리하고 나머지는 전달, 포워딩하기)
include : tomcat이 (1) 처리 → (2) 처리 → 다시 (1)로 돌아옴
forward : (1) 처리 → (2) 처리
<actionTag_forward1.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- JSP Model 1의 개발방법 (거의 안씀) -->
<!-- 쓰는 것: Model 2 , MVC , Spring FrameWork -->
<%
/* 데이터 생성 */
String name = request.getParameter("name");
String msg = name + "님 안녕?";
/* forward2 파일로 보내주기위해 속성으로 객체 저장 */
request.setAttribute("msg", msg);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<style>
</style>
</head>
<body>
<jsp:forward page="ex04_actionTag_forward2.jsp"/>
</body>
</html>
<actionTag_forward2.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<style>
</style>
</head>
<body>
<!-- 데이터를 가공하지 않고 화면에 구현하는 기능만 -->
<%= request.getAttribute("msg") %>
</body>
</html>
→ URL상에서 파라미터 전달하기
주의: URL은 → forward1.jsp으로 떠있음!!
사용자는 forward2.jsp의 존재여부를 모른다!
자바 빈 관련 액션 태그들 (Spring Framework에서 객체를 자바빈으로 관리함)
자바빈 : Model(JSP에서 사용될 java코드)과 View(JSP에서 사용될 HTML코드)의 분리를 위해 도입된 개념
JSP내에서 자바 객체를 자바빈이라고 칭함
자바빈 관련 액션 태그 이용 → Java객체를 태그형태로 생성하고 사용
(자바객체를 태그형태로 만들 것이 자바 빈이다)
"JSP문서 내에서 자바코드를 쓰지 않고 HTML스럽게 쓰고 싶어!"
즉, <% 어쩌구 %>를 쓰지 않겠다!!
자바 클래스 생성해야함 (자바객체)
Java resources → <vo>package → class생성
(이름: v o (value object) = data를 가지고 있는 객체 이다! )
<PersonVo.java>
package vo;
public class PersonVo {
private String name;
private int age;
private String 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;
}
}
<actionTag_bean.jsp>
<%@page import ="vo.PersonVo" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 자바 객체 생성 후 -->
<!-- 자바코드 -->
<%-- <%
PersonVo vo = new PersonVo();
vo.setName("강다은");
vo.setAge(26);
vo.setGender("female");
%> --%>
<!-- 자바 빈 : 태그 형식으로 작성 -->
<!-- tomcat은 나중에 PersonVo.java를 보고 pvo라는 객체를 생성함 -->
<jsp:useBean id="pvo" class="vo.PersonVo"></jsp:useBean>
<!-- set하기 -->
<jsp:setProperty property="name" value="강다은" name="pvo"/>
<jsp:setProperty property="age" value="100" name="pvo"/>
<jsp:setProperty property="gender" value="female" name="pvo"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<style>
</style>
</head>
<body>
<!-- 자바코드 -->
<%-- 이름: <%= vo.getName() %> --%>
<!-- get하기 -->
이름: <jsp:getProperty property="name" name="pvo"/>
나이: <jsp:getProperty property="age" name="pvo"/>
성별: <jsp:getProperty property="gender" name="pvo"/>
</body>
</html>
<jsp:setProperty> :
property = "name" ) 실제 class 멤버 변수의 이름
value = "강다은" ) setName(" ")에서 넣어준 String 값(내가 넣어줄 값)
name = "pvo" ) 참고할 java객체의 id(이름)
<jsp:setProperty> 안에서 지정하는 것이 아니라 → URL에서 직접 값 넣어주기
→ 직접 String으로 넣어주려면 = value
→ 파라미터로 넣어주려면 = param
**특징1. 파라미터 값으로 set하기
<!-- 파라미터 값으로 set하기 -->
//getParameter("name") → param="name"//
<jsp:setProperty property="name" param="name" name="pvo"/>
<jsp:setProperty property="age" param="age" name="pvo"/>
<jsp:setProperty property="gender" param="gender" name="pvo"/>
**특징2. property값, param값 동일할때 : 파라미터 생략해도 된다!
<!-- property값, param값 동일할때 : 파라미터 생략해도 된다! -->
<jsp:setProperty property="name" name="pvo"/>
<jsp:setProperty property="age" name="pvo"/>
<jsp:setProperty property="gender" name="pvo"/>
**특징3. (property값, param값 동일)한번에 값을 지정할 수 있다!
<!-- 한번에 값을 지정할 수 있다! -->
<jsp:setProperty property="*" name="pvo"/>
<% 어쩌구 %> = jsp:setProperty
<%= 어쩌구 %> = jsp:getProperty
'🔴 JSP웹개발' 카테고리의 다른 글
JSP(5) - 간단명료하게 JSP모델 정리! (model1, model2, mvc패턴) (0) | 2019.11.12 |
---|---|
JSP(3) - 디렉티브 vs 액션태그 (0) | 2019.11.11 |
JSP(2) - JSTL(tag library)사용해서 html스럽게 코드작성하기 (0) | 2019.11.08 |
JSP(1) - JSP 스크립트 요소 (0) | 2019.11.08 |
Servlet(5) - Servlet vs JSP (0) | 2019.11.05 |