0

Play 1.2.5 を使用しています

私は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>

以下は、registerUserApplication Controller のメソッドです。

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

上記の署名は正常に機能しますが、メソッドに必要のない多くのパラメーターを追加する必要があります。

フォームに 15 個以上のフィールドがあります。この場合、15 個のパラメーターは多すぎます!!!

したがって、ユーザー入力値をモデル (上記のユーザー モデルなど) にバインドし、それをuserメソッドへのオブジェクト パラメーターとして、またはキーと値のペアを含むマップとしてコントローラーに渡す方法を知る必要があります (どちらか簡単です)。 ?

これについて教えてください。

よろしく、

4

1 に答える 1

2

入力フィールドの名前をuser.nameuser.cityなどに変更し、コントローラー メソッドを に変更します。

public static void registerUser(User user)

これについては、ドキュメントに記載されています。

于 2013-02-03T16:32:44.233 に答える