Spring

[jsp] 표현언어

sian han 2022. 5. 22. 19:29

※ 표현언어

 - 자바의 표현식<%=%> 을 대신한다고 생각하면 됨

 - 표현 언어(Expression Language) : jsp 페이지에서 사용되는 자바 코드를 대신해서

   액션 태그 엘리먼트의 속성에 값을 지정하는 역할을 함

 - null 값을 가지는 변수에 대해 좀 더 관대하고, 데이터 형변 환을 조금 더 자동적으로 해줌

       ㄴ null을 자동으로 공백으로 바꿔줌

 - java EE8 : jsp2.3, servlet 4.0, EL 3.0, JSTL 1.2

 

모델2 ) request setattribute 저장 => 뷰(jsp)에서 getattribute 

    ㄴ 표현언어로 이 과정을 간단하게 할 수 있다.

 

 

 

 

EL 표현식

  - el 표현식에는 연산자 사용 가능, 내장객체 지원함

  - vo.gettitle , vo.getname 이런걸 더 간단하게 생략해서 사용가능

   = > ${ }   ( ${} 안에 멤버변수만 넣으면됨

           ㄴNAME 만 가지고 사용하기때문에 훨씬 간결해진다

 

기존방식

<%=person.getAddress()%>

EL표현식

${person.address}

 

 

 

▶ 특징

 

▷ 표현언어는 항상 ${ 로 시작해서 } 로 끝남

  - 표현식은 jsp 스트립트 내부에서는 쓸 수 없음 => <%%> , <%!%>, <%=%> 내부에서 사용 못함

${num} 
<%=num%>

 

 표현식 안에 연산식 작성 가능

  - 표현언어 표현식에는 숫자, 문자열, boolean 값, null 같 은 상수값(리터럴)들을 포함할 수 있음

${num + 1}

 

 

 

 

▶ 표현언어의 연산자

 

▷ dot(.)

  - 프로퍼티(멤버변수) 접근 연산자

  - dot(.)은 표현언어에서 자바빈이나 컬렉션 객체에서 다음에 오는

   이름과 같은 프로퍼티를 찾게 함 (vo.멤버변수 <=이런식)

 

 

 

▷ 브라켓 연산자 [] (대괄호)

  - 브라켓 연산자 배열의 형태로 객체의 프로퍼티나 변수에 접근할 수 있음

${result[0] } 년 ${result[1] } 월 ${result[2] } 일 = 대괄호안은 배열
${article[‘num’] + 1} 또는 ${article[“num”] + 1} // 자바빈의 프로퍼티(멤버변수) num에 1을 더하는 경우

 

 

▷ empty

 - 비어있는 문자열이냐 배열이냐 컬렉션이냐 다 체크(isEmpty)하고 + null인지도 같이 체크

 - empty 하나로 null인지 비어있는지 같이 체크

 - 빈 변수 값 체크. null, 빈 문자열, 빈 배열, 엔트리가 없는 Map 이나 컬렉션인지 등을 테스트

 

 

 

 

▶ 표현언어에서 제공되는 내장객체

 

sessionScope 

  - 모든 session 영역 객체들에 대한 컬렉션

<c:if test="${empty sessionScope.userId }">
컨텍스트 패스 : ${pageContext.request.contextPath}

 

 

 param

  - 모든 request 파라미터들을 문자열로 가진 컬렉션

${param.name }, ${param.no }, ${param.pwd }....
=${param['name'] }, ${param['no'] }, ${param['pwd'] }

 

 

 

pageContext

  - 현재 페이지를 위한 javax.servlet.jsp.PageContext

If(session.getAttribute(“userId”)==null || session.getAttribute(“userId”).isEmpty())
컨텍스트 패스 : request.getContextPath()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Spring' 카테고리의 다른 글

[Spring] 스프링 프레임워크  (0) 2022.05.24
[jsp]JSTL  (0) 2022.05.24
[jsp] 모델2 기반의 MVC 패턴 게시판의 흐름  (0) 2022.05.22
회원가입  (0) 2022.05.19
[jsp] 모델2 기반의 MVC 패턴  (0) 2022.05.18