0


3 つのフォーム フィールドを検証したいと考えています。
通常の方法は次のとおりです。

class User {

  String name
  String password
  String personalInfo

  static constraints = {
    name(size: 4..20, unique:true, blank:false)
    password(size:8..20, blank:false)
    personalInfo(size: 1000, nullable:true)
  }
}

しかし、私の gsp では、3 つのテキストフィールドすべてを同じ名前にします。

<td>Name:</td><td><g:textfield name="property"/></td>
<td>Password:</td><td><g:textfield name="property"/></td>
<td>PersonalInfo:</td><td><g:textfield name="property"/></td>

このフォームを検証する方法????

4

1 に答える 1

2

同じドメイン クラスの異なるプロパティにマップされるフォームの入力フィールドに同じ名前を付けることは、非常に悪い習慣です。
ただし、できない場合は、フィールドがリストとしてコントローラーに送信されます。したがって、次のようにコントローラーで値を抽出できます。

def parameterList = params.property as List
def name = parameterList[0]
def password = parameterList[1]
def personalInfo = parameterList[2]

次に、ユーザーオブジェクトを作成できます
def user = new User(name:name, personalInfo:personalInfo, password:password)
if (user.save()){ } else{ }

ベスト プラクティスとして、フォーム内のフィールドに別の名前を付ける必要があります

于 2012-08-22T06:42:02.870 に答える