EL 19

8.forEach태그의 Map 컬렉션 추출

var 속성 즉 변수명은 entry 이며 , items 속성은 ${myMap}이다. request영역에서 맞는 키값을 찾고 Object를 Map으로 변환시켜주는 듯 하다. 그래야만 아래의 출력이 이해 될 것 같다. Map객체는 entrySet으로 바꿀 수 있다는 사실을 기억하고 있다. Set타입이겠구나.. ${entry.key}, ${entry.value} 그렇다면 이코드는 어떻게 되는 것인지 코딩을 해보면..이거 같다. 즉 Map컬렉션을 forEach문의 items 속성에 EL로 등록하고 var로 지정한다는 것은 Entry를 가져온다는 뜻같다. 그러므로 EL 에서는 ${var.key} ${var.value} 인 것 같다.

EL 2020.07.15

7.JSTL-forEach의 태그와 기본속성.

jstl에 대한 의존이 먼저 필요하다는 사실을 기억한다. 로 사용된다. 해당 태그의 속성 목록 var=변수명지정 items=forEach문에 사용할 객체를 EL(${}})로 지정 varStatus=변수상태에대한 것으로 지정해놓고 . 를 통해 index last first등을 사용 begin=시작할 인덱스넘버 end=끝나는 인덱스넘버 step=반복시 증가수치 ${i } var로 변수명을 지정하고 인덱스넘버는 1~3까지 움직인다. EL로 var명을 지정하여 출력 배열이나 컬렉션 객체들을 하나씩 꺼내 쓴다는 점으로 보아서 자바의 forEach문과 흡사하다고 생각한다. String 배열의 사용이다. jsp 내부에서 스크립틀릿으로 정의한 후 (JSP도 하나의 서블릿이며 Servlet 컨트롤러 사용시 Servlet..

EL 2020.07.15

6.JSP 에서 static 메서드 호출

자주 보게되는 타입은 String 이고 이를 조작하는 법이 능숙할 수록 유리하다는 것을 많이 느낀다. 아파치제단에서 관리하는 JSTL 태그 라이브러리에는 내장된 static 메서드가 있어 이를 EL안에 사용할 수 있다. 일단 사용법은 ${메서드명(매개변수)} 인데 매개변수를 조심해야할게, 이게 Property 명이다. \${MyUtil.length(myList)} : ${MyUtil.length(myList)} ${fn:length(myList) } 내부적으로 Static메서드를 만들어 사용하기 위해서는 클래스에서 정의한 뒤 JSP에서 임포트해야한다고 한다. ${}안에 메서드 명으로 호출한다. package chap11; import java.util.Collection; public class MyUt..

EL 2020.07.14

5.EL에서의 논리연산자와 비교연산자

EL은 프로그래밍 언어와 친숙하지않은 사람을 위한 언어라고한다. 자바의 && 연산자는 EL에서 && and 둘 다 허용된다. 자바의 || 연산자는 EL에서 || or 둘 다 허용된다. 자바의 ! 연산자는 EL에서 ! not 둘 다 허용된다. 표현식의 프로퍼티가 하나라도 숫자 타입이라면 산술연산시 숫자로 변환하여 계산한다. 둘다 String 타입이라면 글자 순번으로 비교하는 듯 비교 연산자 num1 : num2: 크다 greater than ${param.num1 > param.num2} ${param.num1 gt param.num2} \${"10" > "7" } : ${"10" >"7" } \${"10" + "7" } : ${"10" + "7" } \${"10" > 7 } : ${"10" > 7 } \..

EL 2020.07.14

3.파라미터, 헤더, 쿠키, 전역 변수

Param >> 싱글 파라미터 도출 ${param.가져올파라미터Key} 로 표현하며 ParamValues >> 배열의 파라미터 도출 ${paramValues.가져올파라미터Key[인덱스]} 로 값을 표현한다. 즉, getParameter("Key") / getParamter("Key") -> [인덱스] 가 된다. Param은 싱글 파라미터를 가져온다. param.name : >>>>>>>>>>>>> ${param.name } ParamValues 는 배열의 파라미터를 가져온다. ${paramValues.name[0] } , ${paramValues.name[1] } Header 정보 도출 header >> 헤더의 전체 내용 도출 ${header}로 표현되며 JSON 형태로 나온다. header['Key']..

EL 2020.07.14

2.List, Array 표현

EL 에서는 null 값을 출력하지 않는다. 값이 나오지 않으면 null 을 고려하거나 로직을 고려해야할 듯 싶다. ${myList}를 하게되면 page->request->session->application 순으로 키값을 찾게되고 값을 찾아 그값을 쓴다. 각 인덱스의 값을 알고 싶다면 [인덱스] 를 사용한다. 문자열리터럴로 ["1"] 같은 값이나 [문자변수] 또한 가능하다. 즉 ${myList[1]} ${myList["1"]} ${myList[myNum]} 이 가능하다. List 컬렉션의 사용 ${myList[0]} , ${myList[1]}, ${myList[2]} 값이 null이라면 ${ myList[3]} 출력하지 않는다. 인덱스에 리터럴을 줘서도 사용가능하다 myList[myNum] : >>>>..

EL 2020.07.14

2.VO 객체 = ? Bean 객체 도출

JSP 와 Springframework 의 Bean 객체는 엄연히 다르다. Vo 객체라고 보면 좋을 듯 하다. 해당 글은 JSP의 Bean, 즉 VO(Value Object)의 필드 값 도출이다. Springframework 도 커멘드 객체와 ModelAndView 객체로 request에 넘겨주는 일이 많아보이고 많이 하게된다. 물론 그 과정은 spring MVC가 대신해주지만 이해하지 않고는 힘들다는 느낌을 많이 받는다. 그러다보니 EL 을 많이 알고 잘 이해해야겠다는 생각이 들 수 밖에는 없고.. 표현식은 Property로 연결되는 것 같다. getter setter is~ set~ 타입의 메서드 이름 을 Property 명이라고 한다. 문법은 ${} 안에 프로퍼티 명을 기입함으로써 연동하거나 출력하..

EL 2020.07.14

1.Map

${객체.key} =>> value 도출 ${객체["key"} =>> value 도출 Attribute 사용 ${}안에 바로 key값 사용 ${key} >> 해당 영역의 key를 가진 Attribute의 value 도출 el 에서 11개의 기본객체가 아니면 attribute page->request->session->application 순으로 찾게 됨. 즉 영역Scope를 안주고 키값만 표현식에 적었을경우. request->session->application 순으로 찾게 됨. --%> Attribute에 저정된 map 객체 도출 myMap.key2: >>>> ${myMap.key2 } requestScope["myMap"].key2 : >>>> ${requestScope["myMap"].key2} r..

EL 2020.07.14