※ JSTL 설치
JSTL 개요 및 설치, Core 사용법
JSTL ? JSP의 경우 HTML 태그와 같이 사용되어 전체적인 코드의 가독성이 떨어진다. 예를들어 html 태그 도중 <% %> 를 사용하여 html 코드의 흐름이 깨지며 코드를 보기에 난해해진다. 그래서 이러한 단
chrismare.tistory.com
참고링크를 참고하여 JSTL을 설치했다.
3. 리터럴 표현식
EL 블록 ("${}과 #{}")에서 사용할 수 있는 값은 문자열, 정수, 부동소수점, 참거짓(Boolean), 널(Null)이 가능하다. 다음은 EL 표현식과 그 결과이다.
<%//EL표현식 - 리터럴 표현식%>
문자열 : ${"test"}<br/>
문자열 : ${'test'}<br/>
정수 : ${20}<br/>
부동소수점 : ${3.14}<br/>
참거짓 : ${true}<br/>
null : ${null}<br/>
앞의 EL 표현식을 JSP 페이지에 넣고 테스트해보면 다음과 같은 실행 결과를 얻는다(그림 1).
마지막 ${null}의 실행 결과는 빈 문자열(" ") 이다.
4. 값 표현식
자바 객체, 배열, List, Map, ResourceBundle로부터 값을 꺼낼 때 사용하는 EL 표현식을 알아본다.
- 배열에서 값 꺼내기(그림 2)
<%
//EL표현식 - 배열
//배열에 값 준비
pageContext.setAttribute("scores", new int[] {90, 80, 70, 100}); //pageContext는 JSP 내장 객체 중 하나다.
%>
<!-- 배열에서 인덱스 2의 값 꺼내기 -->
${'배열에서 인덱스 2의 값 꺼내기 :'} ${scores[2]}
- List 객체에서 값 꺼내기(그림 3)
<%
//EL표현식 - List
//List에 값 준비
List<String> nameList = new LinkedList<String>();
nameList.add("홍길동");
nameList.add("임꺽정");
nameList.add("일지매");
pageContext.setAttribute("nameList", nameList);
%>
<!-- 리스트 객체에서 인덱스 1의 값 꺼내기 -->
${'리스트 객체에서 인덱스 1의 값 꺼내기 :'} ${nameList[1]}
- Map 객체에서 값 꺼내기(그림 4)
<%
//EL표현식 - Map
//Map에 값 준비
Map<String,String> map = new HashMap<String,String>();
map.put("s01", "홍길동");
map.put("s02", "임꺽정");
map.put("s03", "일지매");
pageContext.setAttribute("map", map);
%>
<!-- 맵 객체에서 키 s02로 저장된 값 꺼내기 -->
${'맵 객체에서 키 s02로 저장된 값 꺼내기 :'} ${map.s02}
- 자바 객체에서 프로퍼티 값 꺼내기(그림 5)
자바 빈에 대한 간단한 설명 참고링크 : https://choitaetae.tistory.com/96
[JSP] 자바빈(JavaBean)이란?
자바빈(JavaBean) JSP에서 객체를 가져오기 위한 기법으로 데이터 전달 오브젝트 파일 DTO(Data Transfer Object)라고도 한다. 자바로 작성된 컴포넌트들 즉, 클래스(Class)를 일반적으로 말한다. JSP 프로그
choitaetae.tistory.com
<%
//EL표현식 - 자바빈
//자바 객체에 값 준비
pageContext.setAttribute("member", new Member().setNo(100)
.setName("홍길동")
.setEmail("hong@test.com"));
%>
<!-- 자바빈에서 프로퍼티 email의 값 꺼내기 -->
${'자바빈에서 프로퍼티 email의 값 꺼내기 :'} ${member.email}
- ResourceBundle 객체에서 값 꺼내기(그림 6)
ResourceBundle에 대한 참고링크 : http://cris.joongbu.ac.kr/course/java/api/java/util/ResourceBundle.html#getBundle(java.lang.String)
ResourceBundle (Java 2 Platform SE 5.0)
static ResourceBundle getBundle (String baseName, Locale locale, ClassLoader loader) 지정된 기저명, 로케일, 클래스 로더를 사용해, 자원 번들을 취득합니다.
cris.joongbu.ac.kr
web05 프로젝트에 el.resourcebundle 패키지를 만들고 MyResourceBundle_ko_KR 클래스를 만든다.
package el.resourcebundle;
import java.util.ListResourceBundle;
public class MyResourceBundle_ko_KR extends ListResourceBundle {
public Object[][] getContents() {
return new Object[][] {
{"OK", "확인"},
{"Cancel", "취소"},
{"Reset", "재설정"},
{"Submit", "제출"}
};
}
}
<%
//EL표현식 - ResourceBundle
//ResourceBundle 객체 준비
//pageContext.setAttribute("myRB", ResourceBundle.getBundle("MyResourceBundle_ko_KR"));
MyResourceBundle_ko_KR myRB = new MyResourceBundle_ko_KR();
pageContext.setAttribute("myRB", myRB.getObject("OK"));
%>
<!-- 리소스번들 객체에서 값 꺼내기 -->
${'리소스번들 객체에서 값 꺼내기 :'} ${myRB}
<%//${myRB.OK}는 안됨..%>
pageContext.setAttribute("myRB", ResourceBundle.getBundle("MyResourceBundle_ko_KR")); 방법으로 리소스번들 객체를 준비하면 "java.util.MissingResourceException: Can't find bundle for base name MyResourceBundle_ko_KR, locale ko_KR" 오류가 발생한다. 따라서 MyResourceBundle_ko_KR 클래스의 객체를 생성하여 getObject() 메서드를 사용했다.
참고도서 : https://freelec.co.kr/book/1674/
[열혈강의] 자바 웹 개발 워크북
[열혈강의] 자바 웹 개발 워크북
freelec.co.kr
'교재 실습 > 자바 웹 개발 워크북' 카테고리의 다른 글
55. EL 사용하기 (4) (0) | 2022.06.27 |
---|---|
54. EL 사용하기 (3) (0) | 2022.06.26 |
52. EL 사용하기 (1) (0) | 2022.06.23 |
51. JSP 액션 태그의 사용 (2) (0) | 2022.06.22 |
50. JSP 액션 태그의 사용 (1) (0) | 2022.06.21 |
댓글