2013-02-22 4 views
0

많은 관련 속성을 포함하는 "Device"라는 모델 클래스가 있다고 가정 할 때 Javascript를 사용하여 확인란에 "Device"객체를 가져 오는 방법이 있습니까?자바 스크립트 : 체크 박스에서 객체 가져 오기

JSP 페이지 :

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

자바 스크립트 :

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]를 호출하는 시도 나는 명확하게 밝히지 않은 경우

, 여기에 샘플입니다. 값은 "Device"객체 대신 toString() 함수의 문자열 만 반환했습니다.

내가 "Device"개체 전체를 가져올 수 없으면 확인란을 통해 모든 특성을 하나씩 가져와 Javascript의 "Device"개체로 어셈블해야하기 때문에 이러한 방식으로 수행해야합니다. 예를 들면 :

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> 

자바 스크립트 :

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은 자바처럼 해석 할 수 없습니다. Java, JS 언어 모두에서 이해할 수있는 표기법으로 오브젝트를 변환해야합니다. 이 작업을 수행하는 방법은 내 Java 객체를 JSON으로 변환하고 클라이언트 측에서 javascript로 가져 오는 것입니다.

+0

제퍼슨 감사합니다. JSON을 사용하여 관리 할 수 ​​있었지만 프론트 엔드 JSP와 백엔드 서블릿간에 통신하는 것이 정말 유용하다는 것을 알게되었습니다. 그런데 프론트 엔드 JSP에는 기본 JSON2.js를, 백엔드 Java Servlet에는 Gson을 사용했습니다. 그들은 잘 작동합니다! – ShadowScorpion

관련 문제