2013-02-03 88 views
0

我使用的播放1.2.5玩!綁定UI值模型

我有如下一個User模型:

@Entity 
public class User extends Model { 
public String name; 
public String city; 
public String country; 
public Integer zip; 
} 

registration.html文件是這樣的:

#{extends 'main.html' /} 
#{set title:'Home' /} 

<form action="@{Application.registerUser()}" method="get"> 
Name: <input type="text" name="txtName"><br> 
City: <input type="text" name="txtCity"><br> 
Country: <input type="text" name="txtCountry"><br> 
Zip: <input type="text" name="txtZip"><br> 
<input type="submit" value="Submit"> 
</form> 

下面是應用控制器中的registerUser方法:

public static void registerUser(String txtName,String txtCity,String txtCountry,Integer txtZip){ 
    //some business logic 
    render(); 
} 

上面的簽名工作正常,但我不得不在我不想要的方法中添加很多參數。

在一個窗體中,我有超過15個字段,在這種情況下15個參數太多了!

因此,我需要知道如何將用戶輸入值綁定到模型(例如上面顯示的用戶模型),並將其作爲參數user傳遞給控制器​​或作爲具有鍵和值對的映射(哪個更容易)?

請讓我知道這件事。

問候,

回答

2

重命名輸入字段user.nameuser.city等,並改變它的控制器的方法,以

public static void registerUser(User user) 

這在the documentation說明。

+0

感謝您的回覆。在某處我看到類似於'#{form ...}#{/ form}'的語法。使用該語法可以達到同樣的效果嗎?不知道這是什麼,請讓我知道它是爲了什麼? – WhoAmI

+1

是的,同樣可以實現。表單標籤也在文檔中描述:http://www.playframework.org/documentation/1.2.5/tags#form –

+0

非常感謝指針:) – WhoAmI