2013-04-06 5 views
0

Java EE 및 HTML5의 프런트 엔드 측을 처음 사용합니다. 데이터 속성을 사용하여 DOM을 읽을 수 있다고 읽었습니다. 어떻게 이것을 사용하여 자바에 의해 이미 설정된 세션 속성을 얻는가? 숨겨진 입력을 사용하는 것과 같은 다른 방법과 비교합니다. 이 같은HTML5 데이터 속성을 사용하여 세션 속성을 얻는 방법

<input id="sid" type="hidden" name="series" value="${sessionScope.series} /> 

var sid = document.getElementById("sid"), series; 
+0

세션 ID가 필요합니까? 왜 단지'var sid = $ {sessionScope.series}'가 아닌가? – robertc

답변

1

사용 무언가 :

<div id="div1" data-special-value="${sessionScope.series}"></div> 

과 같은 속성 값을 얻을 : 심지어

document.getElementById("div1").getAttribute("data-special-value") 

또는을 (http://caniuse.com/dataset) :

document.getElementById("div1").dataset("special-value") 

또는 jQuery로 :

$("#div1").attr("data-special-value") 
// or 
$("#div1").data("special-value") 

비록 요소에 세션 값을 저장하는 것이 옳지는 않지만. 확실히 틀리지는 않지만, 당신이 필요로하는 것이 무엇인지 궁금합니다. 세션은 한 번 나타납니다.

data-* 속성은 관련 데이터를 무언가에 저장하는 데 더 유용합니다. 및 데이터베이스 레코드의 무리 통해 루프가 자신의 열을 인쇄 할뿐만 아니라, 한 번 행의 데이터베이스 id을 저장하려면 예를 들어, 사용하십시오 :

<c:forEach items="${rows}" var="row"> 
    <tr data-row-id="${row.id}"> 
     <td>${row.name}</td> 
     <td>${row.description}</td> 
    </tr> 
</c:forEach> 

을 그리고 원래 row.id 값을 얻으려면 , 그것은 하나의 장소에 저장되어 그것이 관련된 모든 것을 (칼럼) 포함합니다. 이것은 대개 어떻게/어디서 data-* 속성을 사용 하는가입니다. 물론, 여기에는 많은 아이디어/용도가 있습니다.

관련 문제