Programming Learning Diary

jsp parm 정보 불러오기/ EL 표기법 기본

페이지 정보

작성일 19-11-28 20:49

본문







1. EL ( Expression Language )

EL은 JSP의 출력 문법을 대체하는 표현 언어입니다.

  • <%=  i  %> 
    • JSP에서의 값 표기법이며, i는 변수입니다.
  • ${  i  }
    • EL에서의 값 표기법이며, i는 이름입니다.


객체 Scope에서 애트리뷰트의 이름이 같을 경우, Scope가 작은 범위에서 큰 범위로 해당 이름이 존재하는지 찾습니다.

예를 들어, request scope에 A 애트리뷰트가 있고 session scope에 동일한 이름의 A 애트리뷰트가 있을 때,

${ A }의 결과는 request scope에 있는 A 애트리뷰트의 값이 출력될 것입니다.


EL 표기법에서 파라미터의 값은 param 키워드를 통해 가져올 수 있습니다.

또한 JSP 값 표기법에서 파라미터는 문자열이지만, EL에서 숫자는 숫자로, 문자열은 문자열로 인식합니다.


예를 들어, 클라이언트로부터 localhost:8080/testing/test.jsp?a=10 으로 요청이 올 때,

test.jsp 파일에서 아래와 같이 작성하면,


<%= request.getParameter("a") + 100 %> JSP => 10100 ${param.a + 100 }             EL => 110


JSP 값 표기법에서는 a가 문자열이기 때문에 10100이 되지만,

EL 표기법에서는 10을 정수형으로 인식하기 때문에 110이 됩니다.



내장 객체

pageScope 

page Scope에 접근하기 위한 객체 

 reqeustScope

request Scope에 접근하기 위한 객체 

 sessionScope

session Scope에 접근하기 위한 객체 

applicationScope 

application Scope에 접근하기 위한 객체 

 param

파라미터 값을 가져오기 위한 객체 

 header

헤더 값을 가져오기 위한 객체 

 cookie

쿠키 값을 가져오기 위한 객체 

 initParam

JSP 초기 파라미터를 가져오기 위한 객체 

 pageContext

pageContext 객체에 접근하기 위한 객체 




예제)


EL_03.jsp


<form action="EL_04.jsp">

숫자1: <input type="text" name="num1"><br>

숫자2: <input type="text" name="num2"><br>

<input type="submit" value="OK">

</form>




EL_04.jsp 


x=${param.num1}, y=${param.num2}<br>

x+y=${param.num1+param.num2} <br> 

x-y=${param.num1-param.num2} <br> 

x*y=${param.num1*param.num2} <br> 

x/y=${param.num1/param.num2} <br> 

x%y=${param.num1%param.num2} <br>

x가y보다 큽니까 ? ${param.num1-param.num2>0} <br>

y가x보다 큽니까 ? ${param.num1-param.num2<0} <br>

x와y가 모두 양수 입니까?${param.num1>0&&param.num2>0}<br>

x와y가 같습니까 ?${param.num1==param.num2 ? "true" :"fasle"}<br>

<hr>

${param.num1}을${param.num2 }로 나눈 몫은

${param.num1 div param.num2}<br>

나머지는 ${param.num1 mod param.num2 }<br>

둘다 양수 입니까? ${(param.num1 gt 0) and (param.num2 gt 0) }<br>

둘다 음수 입니까? ${(param.num1 lt 0) and (param.num2 lt 0) }<br>



결과


764a9b247c5aff8ec9552ddf89709aff_1574942537_8026.png

 참고 https://victorydntmd.tistory.com/156

댓글목록

등록된 댓글이 없습니다.