2011-12-12 87 views
0

我确定这是一个总的noob问题,我错过了一个明显的错误,但是无论如何这里都是这样。未验证的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) 
    } 
} 

和控制器的动作:

def process = { LeadCommand cmd -> 

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

Command对象是越来越稀少,但并不跟随验证约束,我的设置。我通过阅读文档几次,但我必须失去了一些东西...提前

感谢

BTW - 我使用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] 
+1

您可以发布您提交的应该失败的测试数据的示例吗? – schmolly159

+0

@ schmolly159更新了发布数据的问题 – matmer

回答

4

重命名命令属性使用STA ndard骆驼案例的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) 
    } 
} 
+0

这也是我的想法。第一个字母大写的属性或方法= :( –

+0

这样做!谢谢ataylor。我通常遵循这些约定,但试图采取一个快捷方式(数据传递到另一个需要上限的应用程序),但显然Grails没有像,再次感谢。 – matmer