2013. 8. 16. 09:51

● 3항 연산자 활용 태그 속성바꾸기

 


  서블릿에서 넘긴 parameter에 따라 다음처럼 html 소스가 바뀐다.



● 자바스크립트에서 문자열

 





'JSP > Jsp 내장객체' 카테고리의 다른 글

JSP 내장객체의 스코프  (0) 2013.08.16
EL 개요  (0) 2013.08.16
Session  (0) 2013.07.29
Request  (0) 2013.07.29
JSP 개요  (0) 2013.07.29
Posted by 1+1은?
2013. 8. 16. 09:43

EL, Expression Language


목차

■ 개요
■ 작성규칙
■ 연산자
■ 내장객체


■ 개요

 EL은 JSTL 1.0 스펙에서 소개되었던 것으로 JSP 2.0부터 공식적으로 포함되었으며,  JSP 페이지에 사용되는 자바코드를 대신해서 액션태그 엘리먼트

(예:<jsp:setProperty>)의 속성에 값을 지정하는  역할을 한다. 


${object}


request 객체에 전달한 vo라는 자바빈즈에 getEmail() 메소드가 존재할 때 JSP의 스크립릿으로


<%Test vo = (Test)request.getAttribute("vo");%>

<%= vo.getEmail()%>


라 작성했다면 EL은 다음과 같다 :


${vo.address};


졸라 편하다.



■ 작성규칙

EL은 숫자, 문자열, boolean 값과 null 같은 상수 값(리터럴) 들도 포함할 수 있다.⋅

EL은 $ 와 표현식 그리고 브레이스 { }를 사용해서 표현한다.


- 표현 언어(EL)는 항상 『${』 로 시작해서 『}』로 끝난다.

- JSP 스크립트 내부에서 쓸 수 없다. 즉, <%  %>, <%!  %>, <%=  %> 안에는 사용할 수 없다.

- 표현식 안에 연산식도 작성이 가능 하다. 

   ${num  +  1}

- 프로퍼티 접근 연산자 닷(dot(.)) 은 표현 언어(EL)에게 자바 빈이나 컬렉션 객체에서 다음에 오는 이름과 같은 프로퍼티를 찾게 한다.

   ${article['num']  +  1}  or  ${article["num"]  +  1}

- 브라켓 연산자(bracket([ ]) operator) 를 사용해도 된다. 닷(dot(.)) 과 같다. 즉, 브라켓 연산자의 배열 형태로 객체의 변수에 접근한다.



■ 연산자 

.

 빈의 프로퍼티나  맵(Map)의  엔트리 접근 

[]

 배열이나  리스트(List)  엘리먼트 접근 

()

 괄호. 표현식의  연산 순서를  바꿔서 연산하게 할  때

a ? b : c

 EL의 삼항연산자. a가 true면 b, false면 c 

+    -

*   /

%   !

==   !=

<   >

<=   >=

&&   ||

 자바와 같다.

empty

 빈 변수값 체크. null 혹은 빈문자열, 빈배열, 엔트리가 없는 맵이나 컬렉션이면 true 

func(args)

 함수 호출 



■ EL에서 제공하는 내장객체 

● pageScope, requestScope, sessionScope, applicationScope
 : 각 영역 객체들에 대한 컬렉션
${scope.데이터_명}
예를 들어 session 객체로 전달받은 email에 접근할 때, 구문이 다음과 같다면 :
session.setAttribute("email", "noname@site.com"); 

전달받은 데이터에 접근하려면 :
${sessionScope.email} 라고 작성한다.

scope를 명시하지 않으면 requestScope에서 찾는다.

● param
 : 모든 request  파라미터들을  문자열로 가진 컬렉션(request.getParameter() 메소드) 
${param.데이터_명} 
혹은 ${param["데이터_명"]}
param은 html의 form을 통해 입력된 데이터를 가져올 때 사용한다.  

<form action="test2.jsp" method="post">
<input type="text" name="num"><br/>
<input type="submit" value="보내기">

위 폼에서 넘어온 num을 찾으려면 :
${param.num}

● paramValues 
 : 모든 request 파라미터들을 파라미터당 문자열 배열로 가진 컬렉션 
${paramValues.데이터_명[0]},  ${paramValues["데이터_명"][0]})
form을 이용한 입력 중 checkbox, select 등 같은 name 애트리뷰트를 가진 데이터를 가져올 때는 paramValues를 사용한다. 
사용 형식은 param과 비슷하나 여러 개의 입력 값이 있으므로 배열 형태가 된다

<form action="test2.jsp" method="post">
<input type="checkbox" value="first_value" name="ck"/>
<input type="checkbox" value="first_value" name="ck"/>
<input type="submit" value="보내기">

위 폼에서 넘어온 첫번째 값을 찾으려면 :
${paramValues.ck[0]}

배열 순서는 form 태그에 작성 된 순서를 따른다.

● cookie
 : cookie는 웹 브라우저가 웹 서버로 보낸 쿠키를 가져올 때 사용한다.
${cookie.쿠키_명}  
혹은 ${cookie["쿠키_명"]}
주의 할 것은 반환되는 타입이 쿠키의 값이 아니라 쿠키 객체라는 점이다.  
따라서 쿠키의 값을 출력하기 위해서는 :

${cookie.쿠키_명.value  }  
혹은  ${cookie["쿠키_명"]["value"]} 
라고 해주어야 한다. 
쿠키의 값 대신 쿠키의 다른 정보를 얻기 위해 쿠키명 뒤에  .domain  .path  .maxAge 등을 사용할 수도 있다.

● initParam
  : 모든 어플리케이션의 초기화 파라미터의 이름의 컬렉션
 ${initParam.파라미터_명} 
혹은 ${initParam["파라미터_명"]}
initParam은 웹 애플리케이션의 초기화 파라미터를 가져오는데 사용한다. 
이 값을 얻기 위해서는 해당 이름의 초기화 파라미터가 web.xml 에 등록되어 있어야 한다.

● pageContext
  : 현재 페이지를 위한  javax.servlet.jsp.PageContext.  JSP 페이지의 환경 정보
${pageContext.메서드_명}
혹은 ${pageContext.메서드_명}
⋅pageContext는 java.servlet.jsp.PageContext 클래스 타입의 객체로, 이 클래스에 속하는 get 메소드들의 호출에 사용된다. 
그 중에서도 파라미터가 사용되지 않는 메소드들만 실행할 수 있다. 사용 형식은  pageContext 뒤에 마침표나 대괄호를 붙혀 사용하나, 메소드 명에서 get을 버리고 난 후, 가장 첫 문자를 소문자로 고쳐 사용한다.

PageContext 클래스의  getRequest 메소드를 사용한다고 하면 :

${pageContext.request} 
혹은 ${pageContext["request"]} 
의 형식이 된다. 각 메소드의 리턴 값은 각각의 객체가 돌아오므로 필요한 필드를 불러와 출력할 수 있다.

⋅request.getContextPath() 가져오기  :  ${pageContext.request.contextPath}
⋅URI : ${pageContext.request.requestURI}

● header, headerValues
 : HTTP 요청 헤더들을 문자열이나 문자열배열로 가진 컬렉션 
 ${header["헤더_명"]}
자바의 식별자 명명규칙을 따르지 않는 헤더는 반드시 위의 형식으로 가져와야 한다.
HTTP 요청 메시지 안에 같은 이름의  HTTP 헤더가 둘 이상 있는 경우는  headerValues 내장 객체를 사용한다. 사용 형식은 paramValues 의 형식과 같다.


'JSP > Jsp 내장객체' 카테고리의 다른 글

JSP 내장객체의 스코프  (0) 2013.08.16
HTML 문서에서 인자로 사용  (0) 2013.08.16
Session  (0) 2013.07.29
Request  (0) 2013.07.29
JSP 개요  (0) 2013.07.29
Posted by 1+1은?
2013. 8. 16. 09:42


 String path = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+cp;


위에서 각 메서드는


getScheme() → http

getServerName() → localhost

getServerPort() → 9090

getContextPath() → test


처럼 값을 가져오며 아래처럼 출력한다.


http://localhost:9090/test

'JSP > JspServlet' 카테고리의 다른 글

서블릿에서 out.print()  (0) 2013.08.16
tag : core  (0) 2013.08.16
None Annotation 스프링 MVC 예제 (abstract, multiaction)  (0) 2013.07.29
MVC 관련 핸들러 매핑 및 컨트롤러  (0) 2013.07.29
액션 태그와 커스텀 태그  (0) 2013.07.29
Posted by 1+1은?
2013. 7. 31. 16:01


examples.zip

출처 : http://www.oesmith.co.uk/morris.js/index.html


jQuery 차트를 만드는 방법


1. 추가





2. <div>

3. <script>

var nReloads = 0;
function data(offset) {
  var ret = [];
  for (var x = 0; x <= 360; x += 10) {
    var v = (offset + x) % 360;
    ret.push({
      x: x,
      y: Math.sin(Math.PI * v / 180).toFixed(4),
      z: Math.cos(Math.PI * v / 180).toFixed(4)
    });
  }
  return ret;
}
var graph = Morris.Line({
    element: 'graph',
    data: data(0),
    xkey: 'x',
    ykeys: ['y', 'z'],
    labels: ['sin()', 'cos()'],
    parseTime: false,
    ymin: -1.0,
    ymax: 1.0,
    hideHover: true
});
function update() {
  nReloads++;
  graph.setData(data(5 * nReloads));
  $('#reloadStatus').text(nReloads + ' reloads');
}
setInterval(update, 200);


4. 실행화면



기본적인 꺽은선 그래프이다.


추가적인 그래프를 원할 경우 examples.zip의 samaple파일을 확인해보자.



'javascript > jQuery' 카테고리의 다른 글

chart 관련 사이트모음  (1) 2013.07.31
Posted by 1+1은?
2013. 7. 31. 13:16

http://codegeekz.com/best-jquery-chart-libraries-for-building-interactive-charts/


chart.Js : http://www.chartjs.org/docs/


Chart.js-master.zip


xCharts : http://tenxer.github.io/xcharts/


xcharts-master.zip


jqPlothttp://www.jqplot.com/


jquery.jqplot.1.0.8r1250.zip


wijmo javascript api : http://wijmo.com/docs/wijmo/webframe.html#Linechart.html


google : https://developers.google.com/chart/?hl=ko&csw=1


최신모음 : http://socialcompare.com/en/comparison/javascript-graphs-and-charts-libraries


'javascript > jQuery' 카테고리의 다른 글

jQuery moris.js(free-license)  (0) 2013.07.31
Posted by 1+1은?