0

これは完全な初心者の質問であり、露骨なエラーが見逃されていると確信していますが、とにかくここに行きます。

コマンドオブジェクトがあります:

public class LeadCommand {
    Integer OwnerId
    String FirstName
    String LastName
    String Email
    String Phone1
    String Company
    String StreetAddress1
    String City
    String State
    String PostalCode
    String Country
    String Leadsource

    static constraints = {
        OwnerId(blank: false)
        FirstName(blank: false)
        LastName(blank: false)
        Email(blank: false, email: true)
        Phone1(blank: false)
        Company(blank: false)
        StreetAddress1(blank: false)
        City(blank: false)
        State(blank: false)
        PostalCode(blank: false)
        Country(blank: false)
        Leadsource(blank: false)
    }
}

そしてコントローラーのアクション:

def process = { LeadCommand cmd ->

    if (cmd.hasErrors()) {
        redirect(action: index)
    } else {
            // do stuff
    }
}

コマンド オブジェクトが読み込まれていますが、設定した検証制約に従っていません。私はドキュメントを数回読みましたが、何かが欠けているに違いありません...

前もって感謝します

ところで-私はGrails 1.3.7を使用しています

編集:

サンプル投稿データは次のとおりです: (params マップから直接)

[Phone:, 
OwnerId:1, 
Country:United States, 
LastName:, 
City:, 
PostalCode:, 
State:, 
Email:, 
Leadsource:, 
FirstName:, 
Submit:Submit, 
Company:, 
StreetAddress1:, 
action:process, 
controller:leadEntry]
4

1 に答える 1

4

コマンド プロパティの名前を変更して、キャメル ケースの標準 Java 命名規則を使用し、最初の文字を小文字にします。Grails はこれらの規則を多用しており、従わないと壊れることがあります。例えば:

public class LeadCommand {
    Integer ownerId
    String firstName
    String lastName
    String email
    String phone1
    String company
    String streetAddress1
    String city
    String state
    String postalCode
    String country
    String leadsource

    static constraints = {
        ownerId(blank: false)
        firstName(blank: false)
        lastName(blank: false)
        email(blank: false, email: true)
        phone1(blank: false)
        company(blank: false)
        streetAddress1(blank: false)
        city(blank: false)
        state(blank: false)
        postalCode(blank: false)
        country(blank: false)
        leadsource(blank: false)
    }
}
于 2011-12-12T20:02:20.233 に答える