2016-05-18 12 views
-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 
}} 

これがなぜ起こるか上の任意のアイデア?

答えて

0

私は前にこのプラグインを使用していない、が、あなたは

<f:field property="firstName"/> 

代わりの

<f:field property="firstName"> 
    <g:textField name="firstName" value="${user?.firstName}"/> 
</f:field> 

を試すことができます。使い方https://grails-fields-plugin.github.io/grails-fields/guide/usage.html

を見て、私は内側のタグは、回答に

+0

感謝を必要とされているとは思いません。解決済み、内側のタグは問題ではありません。重要なことは、プロパティ名が外側タグと内側タグで同じでなければならないことです。そうでない場合は、フィールド全体が折れます。私がここに投稿した.gspファイルでは、 "国"と "誕生日"の両方のフィールドで、両方のタグが同じプロパティ名を参照しています。だからこのようにOKですが、私がテストしているエディタでは、 "country"の内側タグは "user.country"プロパティを参照し、outerは "country"プロパティを参照します。これは私が述べた間違った振る舞いを引き起こします – florigo

関連する問題