2016-01-22 60 views
0

我使用java的播放框架,並想學習表單提交。所以,我有這種方法在我的控制器:當調用方法綁定時出現錯誤形式

public Result index(String url) { 
    Form<SimpleUser> userForm = Form.form(SimpleUser.class); 
    Map<String,String> anyData = new HashMap(); 
    anyData.put("name", "hossein"); 
    SimpleUser user = userForm.bind(anyData).get(); 
    return ok(views.html.index.render(user.getName())); 
} 

的問題是,含有該線「SimpleUser用戶= userForm.bind(ANYDATA)獲得();」給出錯誤:

的java:不能訪問org.codehaus.jackson.JsonNode 類文件org.codehaus.jackson.JsonNode找不到

類SimpleUser定義:

public class SimpleUser { 
    protected String name; 
    public void setName(String name) {this.name = name;} 
    public String getName() {return name;} 

}

其實這個錯誤令我困惑,因爲我不知道它與JsonNode有什麼關係。爲什麼會發生此錯誤,我該如何解決?

非常感謝!

回答

0

當我複製/你的代碼粘貼到我的發揮2.4應用程序,我得到以下

[RuntimeException: Cannot instantiate class controllers.Application$SimpleUser. It must have a default constructor] 

此代碼,但是,完美。

public static class SimpleUser { 
     protected String name; 
     protected String username; 
     protected String password; 

     public String getName() { 
      return name; 
     } 

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

     public String getUsername() { 
      return username; 
     } 

     public void setUsername(String username) { 
      this.username = username; 
     } 

     public String getPassword() { 
      return password; 
     } 

     public void setPassword(String password) { 
      this.password = password; 
     } 
    } 
    public Result index2() { 
     Form<SimpleUser> userForm = Form.form(SimpleUser.class); 
     Map<String,String> anyData = new HashMap(); 
     anyData.put("name", "hossein"); 
     anyData.put("password", "123"); 
     anyData.put("username", "hsn.vahedi"); 
     SimpleUser user = userForm.bind(anyData).get(); 
     return ok(); 
     //return ok(views.html.index.render(user.getName())); 
    } 

看看是否適合你。有一個採用ObjectNode的.bind()版本,但也有一個版本可以接收地圖。

+0

感謝您的回答,但使SimpleUser靜態給我一個錯誤。我發現java不允許設計靜態非內部類。 http://stackoverflow.com/questions/3584113/why-are-you-not-able-to-declare-a-class-as-static-in-java – HsnVahedi

相關問題