Grails在客户端进行验证

时间:2018-06-10 06:11:56

标签: grails gorm

我有以下域类和gsp,似乎无法在客户端gsp端进行验证。

域类:

class User {
   String username
   String password
   String emailAddress
   static hasMany = [memberships: Membership]
}

表格gsp:

<div class="error-details">
   <g:hasErrors bean="${user}">
       <ul>
           <g:eachError var="err" bean="${user}">
              <li>${err}</li>
           </g:eachError>
       </ul>
   </g:hasErrors>
</div>
<form action="${raw(createLink(controller:'purchase', action: 
'createSubscription'))}" method="POST">
   <input type="text" name="username">
   <input type="text" name="password">
   <input type="text" name="emailAddress">
</form>

有什么我错过的吗?

1 个答案:

答案 0 :(得分:1)

您应该使用内置的Taglib渲染字段。不要使用标准HTML。这样,您就可以让Grails根据您的域类确定约束。

您未指定正在运行的Grails版本:

最新版本3.3.x使用字段插件,请参阅https://grails-fields-plugin.github.io/grails-fields/latest/ref/Tags/field.html

// comments.component.html

 <div *ngFor="let comment of comments | async" class="col-md-7">
  <ul class="list-group">
    <li class="list-group-item">Author: {{comment.author}}</li>
    <li class="list-group-item">Comments: {{comment.description}}</li>
  </ul>
  <br>
</div>

或仅使用此

<f:field bean="user" property="username"/>
<f:field bean="user" property="password" />
<f:field bean="user" property="emailAddress"/>

将呈现用户的所有属性。

确保更新您的域并包括以下约束

<f:all bean="user"/>

其他约束也是可能的。请参阅https://docs.grails.org/latest/ref/Constraints/Usage.html

在较旧版本的grails中,请参阅https://grails.github.io/grails2-doc/2.4.3/ref/Tags/field.html

static constraints = {
     password password: true
}