반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

JSP - 스클립틀릿과 표현식으로 / EL을 이용해서 'Scope에 저장된 값들 출력하기' 본문

⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆/JSP

JSP - 스클립틀릿과 표현식으로 / EL을 이용해서 'Scope에 저장된 값들 출력하기'

yeonee 여니 2023. 7. 30. 22:09
728x90
반응형
SMALL

안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)

 

yeonee 블로그 : 네이버 블로그

예쁘고 맛있게 먹고 건강하게,강인하지만 온화하게 행하라. ※맛스타운스타일상 인스타 www.instagram.com/s2._.y25n ※맛집감성일상 유튜브https://youtube.com/channel/@S2_yeonee 티스토리https://yeoneeluv.tistory.co

blog.naver.com

 

 

<Person.java영역>

package com.kh.model.vo;

public 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;
	}

	//사용할 getter함수 직접 작성해주기
	public String getName() {
		return 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;
	}
	
	
	
}

 

<Servlet 영역>

// requestScope에 담기
request.setAttribute("classRoom", "C강의장");
request.setAttribute("student", new Person("마틸다",24,"여자"));

HttpSession session = request.getSession();
session.setAttribute("academy","KH정보교육원 강남지원");
session.setAttribute("teacher", new Person("민경민",35,"남자"));

 

<01_el.jsp영역>

<h3>
    1. 기본 작업방식대로 스클립틀릿과 표현식을 활용해서 각 영역(scope)에 담겨있는 값 뽑아서
    화면에 출력
</h3>


<%
    // requestScope에 담김값 뽑기
    String classRoom = (String) request.getAttribute("ClassRoom"); // D강의장
    Person student   = (Person) request.getAttribute("student"); // person객체

    // sessionScope에 담김값 뽑기
    String academy = (String) session.getAttribute("academy"); 
    Person teacher   = (Person) session.getAttribute("teacher"); 
%>
<p>
    학원명 : <%=academy%> <br/>
    강의장 : <%=classRoom %> <br/>
    강사정보 : 민경민, <%=teacher.getAge() %> , <%=teacher.getGender() %> <br/>
    수강생 정보 :
    <ul>
        <li>이름 : 마틸다</li>
        <li>나이 : <%=student.getAge() %></li>
        <li>성별 : <%=student.getGender() %></li>
    </ul>
</p>

 

<화면 출력 모습>

 


 

el방식으로 더 쉽게 해당 scope에 저장된 값들을 출력해보자.

 

<01_el.jsp영역>

<h3>2. EL을 이용해서 쉽게 해당 Scope에 저장된 값들 출력하기</h3>
<p>
    EL은 getXXX를 통해 값을 빼올 필요없이 키값만 제시하면 곧바로 접근가능 <BR>
    내부적으로 해당 Scope영역에 키값의 밸류값을 가져올수 있다.<br>
    기본적으로 EL은 jsp내장객체를 구분하지 않고 자동적으로 모든 내장객체에 
    키값을 검색해서 존재하는 경우 값을 가져옴.
</p>

<p>
    학원명 : ${academy}<br>
    강의장 : ${classRoom}<br>
    강사정보 : ${ teacher.name } , ${ teacher.age } , ${ teacher.gender }<br>   <!-- ${ teacher.name } 은 오류남. vo.Person필드에 name필드는 존재하지만 get set name이 존재하지 않기 때문이다. -->
    <!-- 
        teacher에 접근했을때 밸류값의 자료형은 Person임.
        해당 Person객체의 각 필드에 담긴 값을 출력하고자 한다면, .필드명으로 접근하면됨
        내부적으로 getter메소드를 찾아서 실행됨(즉, getter메소드는 항상 만들어야함.)
    -->
    수강생정보
    <ul>
        <li>이름 : 마틸다</li>
        <li>나이: ${student.age }</li>
        <li>성별: ${student.gender }</li>
    </ul>
</p>

el방식을 이용하면 키값을 일일이 빼올 필요없이 키값만 제시하면 곧바로 값에 접근할 수 있어서 좀 더 쉽습니다.
기본적으로 el은 jsp내장객체를 구분하지 않고 자동적으로 모든 내장객체에 키값을 검색해서 존재하는 경우 값을 가져옵니다.

해당 Person객체의 각 필드에 담긴 값을 출력하고자 한다면, .필드명으로 접근하면됨
내부적으로 getter메소드를 찾아서 실행됨됩니다. (즉, getter메소드는 항상 만들어야함.)

 

<화면 출력 모습>

 

728x90
반응형
LIST