2013-02-22 2 views
0

Предположим, что существует класс модели под названием «Устройство», который содержит много соответствующих атрибутов, есть ли способ получить объект «Устройство» в блоке с помощью Javascript?Javascript: get object from checkbox

Если бы я не вдавался ясно, вот пример:

JSP-страница:

<c:forEach var="device" items="${row.deviceList}"> 
    <input type="checkbox" name="deviceDetails" value="${device}"> 
    <c:out value="${device.equipNo}" /> 
</c:forEach> 

Javascript:

var total = document.getElementsByName("deviceDetails"); 
// run through all element of checkedbox named deviceDetails 
for(j=0; j<total.length; j++) 
{ 
    <!-- get instance Device object ? --> 
    alert(total[j].value); 
} 

Я попытался вызвать общее [J]. значение, которое вернуло мне только строку функции toString() вместо объекта «Устройство».

Целью этого является то, что, если я не могу получить весь объект «Устройство», мне нужно получить каждый атрибут один за другим через флажок и собрать их как объект «Устройство» в Javascript. Такие, как:

JSP страницы:

<c:forEach var="device" items="${row.deviceList}"> 
    <input type="checkbox" name="id" value="${device.stnID}"> 
    <c:out value="${device.stnID}" /> 
    <input type="checkbox" name="stnName" value="${device.stnName}"> 
    <c:out value="${device.stnName}" /> 
    <input type="checkbox" name="equipNo" value="${device.equipNo}"> 
    <c:out value="${device.equipNo}" /> 
</c:forEach> 

Javascript:

var allID = document.getElementsByName("id"); 
var allName = document.getElementsByName("stnName"); 
var allNo = document.getElementsByName("equipNo"); 

var deviceList = new Array(); 
var device = new Object(); 

for(i=0; i<allID.length; i++) 
{ 
    device.id = allID[i].value; 
    device.stnName = allName[i].value; 
    device.equipNo = allNo[i].value; 

    deviceList.push(device); 
} 

Лично я не думаю, что второй подход является хорошей идеей. Следовательно, надеюсь, что кто-то здесь может дать лучшие предложения или любую идею решить передать объект в флажке. Большое спасибо!

ответ

0

Вы не можете пройти Java Objects, чтобы его интерпретировать как Javascript. Вам нужно преобразовать свой объект для обозначения, которое понятно на обоих языках, Java и JS. Способ, которым я использую это, - это преобразовать мой java-объект в JSON и получить его на стороне клиента с помощью javascript.

+0

Большое спасибо, Джефферсон. Мне удалось закончить использование JSON, я узнал, что очень полезно общаться между интерфейсом JSP и внутренним сервлетом. Кстати, я использовал JSON2.js по умолчанию для интерфейсных JSP и Gson для внутреннего сервлета Java. Они отлично работают! – ShadowScorpion