2016-11-27 64 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