2016-11-27 63 views
0

我在我的控制器中有一個簡單的模型對象Person,我想在jQuery中訪問該對象。訪問jQuery的Spring MVC模型對象

我想從控制器傳遞對象到JSP視圖,然後從JSP查看從我的JavaScript文件訪問對象jQuery的

下面是代碼:

Person.java

public class Person { 

    private String name; 

    public String getName() { 
     return this.name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public int getAge() { 
     return 25; 
    } 

    public String getLastname() { 
     return "Ybarra"; 
    } 

} 

控制器方法

@RequestMapping("/person") 
public ModelAndView handleRequest() throws Exception { 
    Person person = new Person(); 
    person.setName("Person's name"); 

    ObjectMapper mapper = new ObjectMapper(); 

    String json = mapper.writeValueAsString(person); 

    ModelAndView modelAndView = new ModelAndView("person.jsp"); 
    modelAndView.addObject("person", json); 

    return modelAndView; 
} 

person.jsp

//... 
<body> 
    <h1>Person</h1> 
    <input type="hidden" id="person" value="${person}"> 
</body> 
/... 

JavaScript文件

//... 
    var p = $('#person'); 

    console.log(p); 
    console.log(p.lastname); 
    console.log(p.age); 
    // ... 

的問題是,控制檯輸出輸出未定義p.lastnamep.age,但正確地輸出整個對象console.log(p).如何訪問lastnameage屬性?

回答

0

你只能訪問已創建的屬性和你沒有創建一個在您Person bean類的agelastname屬性,所以更改Person類,如下圖所示:

public class Person { 

     private String name; 

     private int age; //age property 

     private int lastname; //lastname property 

     public String getName() { 
      return name; 
     } 

     public void setName(String name) { 
      this.name = name; 
     } 

     public int getAge() { 
      return 25; 
     } 

     public void setAge(int age) { 
      this.age = age; 
     } 

     public int getLastname() { 
      return "Ybarra"; 
     } 

     public void setLastname(int lastname) { 
      this.lastname = lastname; 
     } 
    } 
+0

改變了這一切,但仍未定義! – zwiebl