-1
Grails 3.1.6、grails-field-pluginを使用したフォームビルド更新しようとすると、フィールドセットの一部のみが更新されます。ユーザコントローラはスキャフォールドされています。このシナリオでは、フィールド "birthday"と "country"のみが更新に反応します。他のフィールドは完全に無視されます。更新フォームからこれら2つのフィールドを削除すると、残りのフィールドは定期的に更新要求に反応します。ここでGrailsフォームは一部のフィールドでのみ動作します
フォームを参照するビューの一部:ここ
<g:form resource="${this.user}" method="PUT">
<g:hiddenField name="version" value="${this.user?.version}"/>
<fieldset class="form">
<f:with bean="user">
<f:field property="firstName">
<g:textField name="firstName" value="${user?.firstName}"/>
</f:field>
<f:field property="lastName">
<g:textField name="lastName" value="${user?.lastName}"/>
</f:field>
<f:field property="birthday">
<g:datePicker name="birthday" precision="day" value="${user?.birthday}"
years="${2016..1900}" default="${user?.birthday}"/>
</f:field>
<f:field property="country">
<g:countrySelect name="country" value="${user?.country}"
noSelection="['': '-Choose your country-']"
default="${user?.country}"/>
</f:field>
<f:field property="address">
<g:textField name="address" value="${user?.address}"/>
</f:field>
</f:with>
</fieldset>
<fieldset class="buttons">
<input class="save" type="submit"
value="${message(code: 'default.button.update.label', default: 'Update')}"/>
</fieldset>
</g:form>
ユーザーのドメインクラス
class User {
String firstName
String lastName
String email
String password
Date birthday
String country
String address
static constraints = {
firstName blank: false
lastName blank: false
email email: true, blank: false
password blank: false, size: 5..15, matches: /[\S]+/
birthday max: new Date()
country nullable: true
address nullable: true
}}
これがなぜ起こるか上の任意のアイデア?
感謝を必要とされているとは思いません。解決済み、内側のタグは問題ではありません。重要なことは、プロパティ名が外側タグと内側タグで同じでなければならないことです。そうでない場合は、フィールド全体が折れます。私がここに投稿した.gspファイルでは、 "国"と "誕生日"の両方のフィールドで、両方のタグが同じプロパティ名を参照しています。だからこのようにOKですが、私がテストしているエディタでは、 "country"の内側タグは "user.country"プロパティを参照し、outerは "country"プロパティを参照します。これは私が述べた間違った振る舞いを引き起こします – florigo