簡體   English   中英

在javascript中訪問java對象

[英]access java object in javascript

我正在使用spring框架。 我將java bean對象作為模型屬性傳遞給JSP。 在JSP上我調用了一個傳遞這個java bean對象的javascript函數。 我需要在javascript中訪問此對象的成員。 下面是代碼片段

Test.jsp
..
..
<form:radiobutton id="showdialog" path="nextAction" value="showdialog" label="show dialog" 
    onclick="javascript: showDiseaseGroupDialog('${dataRequestFormDTO}');"/></span></div>
..
..

Common.js
function showDiseaseGroupDialog(dataRequestFormDTO){

    alert("DG:"+dataRequestFormDTO.selectedDiseaseGroup);
    for(var diseaseGroupDTO in dataRequestFormDTO.availableDiseaseGroups.values){
        alert(diseaseGroupDTO.name);
    }
}

DataRequestFormDTO.java
public class DataRequestFormDTO{
    private String selectedDiseaseGroup;
    private Map<String, DiseaseGroupDTO> availableDiseaseGroups;

    public String getSelectedDiseaseGroup() {
        return selectedDiseaseGroups;
    }

    public void setSelectedDiseaseGroup(String selectedDiseaseGroup) {
        this.selectedDiseaseGroup = selectedDiseaseGroup;
    }

    public Map<String, DiseaseGroupDTO> getAvailableDiseaseGroups() {
        return availableDiseaseGroups;
    }

    public void setAvailableDiseaseGroups(
            Map<String, DiseaseGroupDTO> availableDiseaseGroups) {
        this.availableDiseaseGroups = availableDiseaseGroups;
    }
}

public class DiseaseGroupDTO {

    private String id;
    private String name;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

問題是我在showDiseaseGroupDialog函數中遇到錯誤。 第一個警報顯示“DG:undefined”和javascript錯誤“availableDiseaseGroups未定義”。

我想明白

  1. 為什么java bean成員在javascript中無法訪問? 雖然在jsp中我可以打印相同的值。

  2. hashmap / arraylist如何在javascript中訪問?

Javascript命名不佳,它與Java無關。 您不能直接在javascript中使用java對象,就像您不能在其中使用C ++對象一樣。

您不能將java對象直接傳遞給javascript,因為java對象僅對Java虛擬機有意義,而javascript只能由瀏覽器中的JS引擎解釋。 但是您可以將java bean轉換為JSON格式或其他純文本格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM