私はローンを記録するgrailsを使って簡単なアプリケーションを開発しています。 - 基本的にカテゴリの2種類、「銀行」&「その他」 タイプミスマッチエラーg:ドメインオブジェクトで選択
- CompanyCategory:そして、3つの簡単なドメインクラスがあります。
- ローン - どの銀行から借りているか、どのくらいの金額を記録していますか?
次のような単純なドメインクラスです:
class CompanyCategory {
String categoryName
}
class Company {
String companyName
CompanyCategory category
}
class Loan {
Company bank
BigDecimal loanAmount
}
私のコントローラから、私は銀行のタイプであるすべての企業を発見した、とのような、私のGSPに渡し:
私のGSPでdef create() {
// Looking for all the companies that are of Bank category
def banks = Company.findAllByCategory(CompanyCategory.findAllByCategoryName("Bank"))
respond new Loan(params), model:[banks: banks]
}
、これはそれがどのように見えるかです:
<g:form resource="${this.loan}" method="POST">
<fieldset class="form">
<f:field bean="loan" property="bank" >
<g:select name="lender" from="${banks}" value="{banks?.id}" />
</f:field>
<f:field bean="loan" property="loanAmount" />
</fieldset>
<fieldset class="buttons">
<g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
</fieldset>
</g:form>
ここまでは、ドロップダウンリストから、銀行だけがドロップダウンリストに表示され、残りの会社は表示されていないことがわかります。
私がフォームを送信しようとすると、しかし、私は次のエラーを取得する:クラスの
プロパティ[銀行] [クラスtest.Loan]私が間違って何をしました
nullにすることはできませんか?それとももっと良い方法がありますか?
ありがとうございます。
EDIT 1
これはにコードを変更した後方法
@Transactional
def save(Loan loan) {
if (loan == null) {
transactionStatus.setRollbackOnly()
notFound()
return
}
if (loan.hasErrors()) {
transactionStatus.setRollbackOnly()
respond loan.errors, view:'create'
return
}
loan.save flush:true
request.withFormat {
form multipartForm {
flash.message = message(code: 'default.created.message', args: [message(code: 'loan.label', default: 'Loan'), loan.id])
redirect loan
}
'*' { respond loan, [status: CREATED] }
}
}
EDIT 2 を保存ある:NULLポインタが修正されてい
<f:field bean="loan" property="bank" >
<g:select name="bank" from="${banks}" value="{banks?.id}" />
</f:field>
、しかし私は今タイプのミスマッチエラーがあります。誰でも私はこれを修正する方法を知っていますか?
ありがとうございます。
助けていただきありがとうございます。 プロパティ[クラスtest.Company]のカテゴリはnullにできません クラス[クラスtest.Company]のプロパティ[companyName]はnullにはできません 何が間違っていた可能性がありますか? –
ここに私の
ありがとうございました!これは完全に機能しました!私は最終版でいくつかの小さな変更を加え、それは美しく働いた。もう一度大変ありがとう@bassmartin! –