티스토리 뷰

EL(Expression Language)의 장점


1. 데이터 접근이 편리


▶ Bean의 property접근

▶ 집합객체(collection object)의 원소를 접근

▶ Request의 parameter, cookie등을 접근하기 편리


2. 간단하지만 유용한 연산자 제공


3. 조건문을 사용한 출력


4. 자동 형변화 (type conversion)


5. 값이 없는 경우 자동으로 공백 문자열을 출력


EL(Expression Language)의 사용법


${변수명} 


▶ PageContext, Request, session, ServletContext 순으로 '변수면'에 해당하는 객체를 찾아서 그 값을 사용 


${varname}의 동일한 효과


▶ <%= pageContext.findAttribute("varname") %>

▶ <jsp:useBean id = "varname" type='pkg.BeanClass" scope="...">

▶ <%= varname %>



${varname.propertyName}


▶ Bean 객체의 이름 + '.' + property 이름 사용

▶ ${person.firstName}은 다음과 동일


<%PersonBean person = (PersonBean) session.getAttribute("person"); %>

<%=person.getFirstName() %>


EL(Expression Language)의 사용 예


Servlet

<Beanproperty.java>


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
@WebServlet("/bean-property")
public class BeanProperty extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    /**
     * @see HttpServlet#HttpServlet()
     */
    public BeanProperty() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Name name = new Name("Gil-Dong""Hong");
        Company company = new Company("Korea First""Daeyon-3 Dong Busan, South Korea");
        Employee employee = new Employee(name, company);
        request.setAttribute("myname", name);
        request.setAttribute("employee", employee); // employee 객체를 응답범위로 받는거?
        
        RequestDispatcher dispatcher = request.getRequestDispatcher("bean-properties.jsp");
        // ServletRequest로부터 RequestDispatcher를 리턴받는 경우
        
        dispatcher.forward(request, response);
        //RequestDispatcher의 foward()메서드 호출하기
    }
 
}
cs


[참고]RequestDispatcher 부분에 대해 알고 싶으면 클릭!!


Servlet

<Name.java>

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
public class Name {
    private String firstName;
    private String lastName;
 
    public Name(String firstName, String lastName) {
        setFirstName(firstName);
        setLastName(lastName);
    }
 
    public String getFirstName() {
        return (firstName);
    }
 
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
 
    public String getLastName() {
        return (lastName);
    }
 
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}
 
cs


Servlet

<Company.java>

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
public class Company {
    private String companyName;
    private String address;
 
    public Company(String companyName, String address) {
        setCompanyName(companyName);
        setAddress(address);
    }
 
    public String getCompanyName() {
        return (companyName);
    }
 
    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }
 
    public String getAddress() {
        return (address);
    }
 
    public void setAddress(String address) {
        this.address = address;
    }
}
 
cs


Servlet

<Employee.java>

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
public class Employee {
    private Name name;
    private Company company;
 
    public Employee(Name name, Company company) {
        setName(name);
        setCompany(company);
    }
 
    public Name getName() {
        return (name);
    }
 
    public void setName(Name name) {
        this.name = name;
    }
 
    public Company getCompany() {
        return (company);
    }
 
    public void setCompany(Company company) {
        this.company = company;
    }
}
cs


JSP

<bean-properties.jsp>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 ">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Bean Properties Demo</title>
</head>
<body>
<!-- 여기는 MVC 모델에 관한 script 입니다. -->
 
<h1>${myname.firstName} , ${myname.lastName}</h1>
    <ul>
        <li>First Name: ${employee.name.firstName}
        <li>Last Name: ${employee.name.lastName}
        <li>Company Name: ${employee.company.companyName}
        <li>Company Business: ${employee.company.address}
    </ul>
</body>
</html>
cs


MVC Model 이라고 했을 때 


M (Javabean) : 서비스와 DAO담당

V (JSP) : 화면에 보여지는 역할

C (Servlet) : MVC를 가운데에서 조율하는 역할



Servlet [Beanproperty.java] 에서 Name, Company,  Employee의 집합 객체를 등록해두고 JSP [bean-properties] 에서 각각의 집합 객체의 원소들을 꺼내어 쓰는 방식을 사용하여 이 예제는 표현되고 있다. 

'4학년 1학기 > JavaScript' 카테고리의 다른 글

RequestDispatcher  (0) 2017.04.28
JSP와 Servlet의 차이  (0) 2017.04.27
JAVA_BEAN  (1) 2017.04.13
web.xml 에러 페이지 설정 예  (0) 2017.04.12
servlet  (0) 2017.04.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/07   »
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
글 보관함