표준 액션 태그 :
<jsp:usbBean>태그
<jsp:useBean id="name" scope="page|request|session|application" class="className" type="typeName" beanName="beanName" />
- 속성 설명
id : JSP 페이지에서 사용할 자바빈의 이름이다.
class : 자바빈의 패키지명을 포함한 실제 클래스명이다.
scope : 자바빈의 유효 범위, 디폴트는 page이다.
type : 자바빈의 타입 기술임.
beanName : class 속성을 지정하지 않을 경우 자바빈의 이름 기술이다.
두번째로는, SetProperty입니다 (= Setter 메서드)
<jsp:setProperty> 태그
<jsp:setProperty name="beanName" property="propertyName" | property="propertyName" param="parameterName" | property="propertyName" value="propertyValue" />
- 속성설명
name : <jsp:useBean>의 id속성에 정의된 빈의 이름이다.
property : 빈의 속성 이름이다.
param : request parameter의 이름이다.
value : property에 할당할 값이다.
세번째로는, getProperty입니다 (= getter 메서드)
<jsp:getProperty> 태그
<jsp:getProperty name="beanName" property="propertyNmae" />
- 속성설명
name : <jsp:useBean>의 id속성에 정의된 빈의 이름이다.
property : 값을 가져 올 빈의 속성 이름이다.
(1) beans0.html : 코드, 이름, 가격, 입고량 html만들어서 beans1.jsp로 전송하도록 한다.
jsp로 넘길때는 method가 get이든 post든 상관없다.
(단 한글이 깨질 수 있기때문에 전송값의 인코딩 request.setCharacterEncoding('utf-8');)
1
2
3
4
5
6
7
8
9
10
11
12
|
<body>
<h1> 제품 정보 등록</h1>
<form action="beans1.jsp">
코드: <input type=text name=code><br>
이름: <input type=text name=name><br>
가격: <input type=text name=price><br>
입고량: <input type=text name=balance><br>
<input type=submit value=등록>
</form>
</body>
|
beans1.jsp : test용도로 <%%>안에서 VO객체만들고 임의의 값 입력해서 <%= %>로 출력해보는 코드이다.
- 표준액션태그를 이용해서 id객체를 만든다. class 패키지.클래스를 만들고
- property안에 setter & getter 값을 넣는다. 그리고 beans2에 전송한다.
- html input name속성값 = parameter이름 (이때, bean클래스의 변수명과 같아지게되면 param을 생략해도된다.)
- 따라서, html의 name != setter의 property가 같지않다면, 해당 값은 null이 나오기때문에 param="html의 name값"으로 작성해야한다. (단, property="*"와 같이 작성하면 모든 setter메서드명이게 된다. 편리성과 간결성)
- 객체생성을 위해서는 기본생성자가 무조건 있어야한다. 만약에 기본생성자가 없다면, 객체를 절대로 만들 수 없습니다.
- 추가적으로,
scope ="page" : 현재페이지만 적용한다. (default),
scope ="request" 는 request.setAttribute("",)와 같이 공유할 수 있는 기능이 생긴다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<%@ 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>
</head>
<body>
<jsp:useBean id="vo3" class="product.ProductVO" scope="application"/>
추가적으로 <jsp:param > ------- foward나 include에 끼워넣는 태그는 아래의 내용을 대체할 수 있다.
RequestDispatcher dispatcher = request.getRequestDispatcher("/day3/user3/user3.jsp");
request.setAttribute("user3", user3);
dispatcher.forward(request, response);
-->
<jsp:getProperty property="code" name="vo3"/><br>
<jsp:getProperty property="name" name="vo3"/><br>
<jsp:getProperty property="price" name="vo3"/><br>
<jsp:getProperty property="balance" name="vo3"/><br>
</body>
</html>
|
cs |
beans2.jsp : 클래스를 만들면서 전송받은 값을 받아와서 getter값을 통해 출력한다.
또한 application메서드를 사용합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
|
beans3.jsp : beans2에서 request를 했다면, beans3에서는 application을 해보는 test를 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<%@ 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>
</head>
<body>
<jsp:useBean id="vo3" class="product.ProductVO" scope="application"/>
<jsp:getProperty property="code" name="vo3"/><br>
<jsp:getProperty property="name" name="vo3"/><br>
<jsp:getProperty property="price" name="vo3"/><br>
<jsp:getProperty property="balance" name="vo3"/><br>
</body>
</html>
|
ProductVO.java : int code, String name, int price, int balance
기본적인 Data를 저장하는 페이지입니다.
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
35
36
37
38
39
40
41
42
43
44
45
46
|
package product;
public class ProductVO {
private int code;
private String name;
private int price;
private int balance;
public ProductVO() {
}
public ProductVO(int code, String name, int price, int balance) {
this.code = code;
this.name = name;
this.price = price;
this.balance = balance;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
}
|
'WEB 기초 > Jsp' 카테고리의 다른 글
[JSP] 15. 쿠키(cookie) 총정리 (0) | 2018.04.23 |
---|---|
[JSP] 14. 도서구매 정보입력창 문제 (0) | 2018.04.23 |
[JSP] 12. forward 이용하기 (include 대신해서) (0) | 2018.04.23 |
[JSP] 11. application 객체 (0) | 2018.04.23 |
[JSP] 10. include객체 (0) | 2018.04.23 |