GRAILSを使用して送信ボタンにアイコンを取得しようとしています。ボタンを表示することを解決しましたが、フォームがエラーをスローすることを犠牲にしました。タグを表示するためにボタンタグを作成しましたが、フォームで次のエラーがスローされます。
--> sessionFactory.currentSession.flush() -->AbstractInstanceController.groovy
Cannot insert NULL into ("APP"."INSTANCE"."STATUS")
--> def instance = super.save(specificInstance, 'specificInstance.label') -->specificInstanceController.groovy
そして gsp のボタン:
<button type="submit" name="_action_save" class="btn" value="Save">
<i class="icon-folder-open"></i> Save
</button>
アイコンを追加する方法を知っている人はいますか:
<input type="submit" ...>
または、スローされた grails エラーを修正する方法
<button>
方法?
アップデート
<g:form name="form">
<g:hiddenField name="status" />
<g:hiddenField name="locationID" value="${instance?.location?.id}" />
<div class="formButtons">
<g:actionSubmit value="Save" name="save_button" class="button cancel" action="save" data-icon="check" />
<input type="submit" name="_action_save" value="Save" class="button cancel" action="save"/>
</div>
<g:render template="form"/>
... "form" has many, many fields in the form of:
<label for="section">Section</label>
<g:textField name="section" class="textfield required" value="${instance?.section}"/>
コントローラーのロジックは、ほとんど変更されていないデフォルトの save() スキャフォールドです。
@Secured(['IS_AUTHENTICATED_FULLY'])
def save = {
def instance = new Instance(params)
instance.setDescription("instancePE")
if(instance.instanceEnd == null){
flash.message = "${message(code: 'instance.time.null.message', args: [instance.mode.instanceHours])}"
render(view: "create", model: [instance: instance])
return
}
if (!validStartEnd(instance)) {
flash.message = "${message(code: 'instance.invalidRange.message', args: [instance.mode.instanceHours])}"
render(view: "create", model: [instance: instance])
return
}
instance.activeInstanceArchive =
g.render(template: "/templates/showInstances",model:
[loc: instance.instLocation])
def inst = super.save(instance, 'instance.label')
render(view: "create", model: [instance: inst])
}
ドメイン オブジェクトは大きいですが、特に異常はありません。格納するオブジェクトをリストするだけです。