2012-06-23 54 views
2

這是我的代碼,我需要檢索POST發送數據:如何取回在java中發揮通後通過數據

@play.db.jpa.Transactional 
public static Result registered(String fullname, String email, String password, String username) { 
    if(fullname.isEmpty()){ 
     return badRequest("<p>fehlerhafte eingabe!</p>").as("text/html"); 
    } else { 
    User user = new User(); 
     user.fullname = fullname; 
     user.email = email; 
     user.password = password; 
     user.username = username; 
     user.save(); 

    } 

    String success = "Successful registered!"; 
    return ok(register.render(success)); 

} 

,這是我的用戶等級:

public class User extends Model { 
private static final long serialVersionUID = 1L; 
public String fullname; 
@Email 
public String email; 
@Required(message="Username erforderlich!") 
public String username; 
@Transient @Required 
public String password; 

public User(){} 

public User(String username, String password, String fullname, String email) { 
    this.username = username; 
    this.password = password; 
    this.email = email; 
    this.fullname = fullname; 
    } 

和這是我的html:

<form method="post" action="@routes.Application.registered()"> 
      <p id="login_panel">@success</p> 
      fullname: <input type="text" name="fullname" id="fullname" value=""/> 
      email: <input type="text" name="email" id="email" value=""/> 
      username: <input type="text" name="username" id="username" value=""/> 
      password: <input type="password" name="password" id="password" value=""/> 
      <button type="submit">Register</button> 
    </form> 

,這是在我的路線:

POST  /registered    controllers.Application.registered() 

什麼是WSRequest?這可以成爲我的問題的線索嗎?

我很感激任何幫助!謝謝謝謝

回答

0

您需要檢查控制器類代碼。您應該在調用的控制器方法中將所有字段名稱作爲參數。然後你可以在你的應用程序中使用這些文件。

+0

是的,但問題是如何獲取通過郵件發送的數據。無論方法在哪裏,我都需要捕獲那些通過的值。 – doniyor

+0

哦,現在我明白你的意思了。謝謝! – doniyor

+0

抱歉轉儲的問題,但我必須這樣做所有的時間,爲什麼我不能只通過表單傳遞的數據沒有綁定到任何類字段? – doniyor

2

您「註冊」的操作不需要任何參數。

這些參數在請求中提供的,你會使用built in form binding讓他們:

public static Result registered(String fullname, String email, String password, String username) { 

    User user = form(User.class).bindFromRequest().get(); 
    .... 
} 
+0

是的,但如果我這樣做,我得到這個錯誤: 'ValidationException:調用TraversableResolver.isReachable()拋出一個異常' 這是爲什麼? – doniyor

+1

請看看這個:http://blog.sveri.de/2012/04/11/play-2-0-formbind-validation-exception/ –

+0

爲什麼我必須每次都將數據綁定到類字段?爲什麼這樣的事情不起作用: ''request.get.POST('name');'' – doniyor