2013-04-06 162 views
0

我是新來的Java EE和HTML5的前端。我讀過你可以使用data屬性來讀取DOM。你將如何正確使用這個來獲得已經由java設置的會話屬性。與其他方法相比,如使用隱藏輸入。如何使用HTML5數據屬性獲取會話屬性

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

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

你需要會話ID在窗體中嗎?爲什麼不只是'var sid = $ {sessionScope.series}'? – robertc 2013-04-06 12:18:26

回答

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-*屬性。當然,這有很多想法/用途。