次のドメインクラスと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>
見逃したことはありますか?
フィールドのレンダリングには、組み込みのTaglibを使用する必要があります。標準のHTMLを使用しないでください。このようにして、Grailsがドメインクラスに基づいて制約を決定できるようにします。
実行しているgrailsのバージョンを指定していません。
最新バージョン3.3.xはfieldsプラグインを使用しています。https: //grails-fields-plugin.github.io/grails-fields/latest/ref/Tags/field.htmlを参照してください。
<f:field bean="user" property="username"/>
<f:field bean="user" property="password" />
<f:field bean="user" property="emailAddress"/>
またはこれを使用してください
<f:all bean="user"/>
これにより、ユーザーのすべての属性がレンダリングされます。
ドメインを更新し、次の制約を含めるようにしてください
static constraints = {
password password: true
}
追加の制約が可能です。https://docs.grails.org/latest/ref/Constraints/Usage.htmlを参照してください
古いバージョンのgrailsでは、https: //grails.github.io/grails2-doc/2.4.3/ref/Tags/field.htmlを参照してください。
<g:field type="text" name="username" value="${userInstance?.username}"/>
<g:field type="password" name="password" value="${userInstance?.password}"/>
<g:field type="text" name="username" value="${userInstance?.username}"/>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加