2017-04-30 5 views
0

URLから開くときにフォームを作成するときにエラーが発生しました。スプリングmvcフォームのエラーマッピング2つのモデル

ContractHeader.java

@Entity 
@Table(name = "CONTRACT_HEADER") 
public class ContractHeader { 

    @Id 
    @Column(name = "id", unique = true, nullable = false) 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int id; 

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "contractHeader") 
    private List<ContractEntitlement> contractEntitlements; 

    @Column(name = "customer_name") 
    private String customerName; 

    getter and setter .... 
} 

ContractEntitlement.java

@Entity 
@Table(name = "CONTRACT_ENTITLEMENT") 
public class ContractEntitlement { 

    @Id 
    @Column(name = "id", unique = true, nullable = false) 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int id; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "id", nullable = false, insertable = false, updatable = false) 
    private ContractHeader contractHeader; 

    getter and setter .... 
} 

コントローラ

@RequestMapping(value = "/create", method = RequestMethod.GET) 
public String createForm(Model model) { 
    ContractHeader ch = new ContractHeader(); 
    ch.setContractEntitlements(new AutoPopulatingList<ContractEntitlement>(ContractEntitlement.class)); 

    model.addAttribute("createForm", ch); 

    return "create"; 
} 

Create.jspを:私は多くのと使用してautopopulatinglistに1としてマッピングされている2つの機種を持っています

<form:form method="post" commandName="createForm" action="${addAction}"> 
<table> 
     <tr> 
     <td>     
      <form:input path="customerName" size="40" /> 
     </td> 
     </tr> 
</table> 
</form:form> 

エラー:私の入力パスオブジェクトがContractHeaderクラスからあるときcontractEntitlementを言っている理由

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'contractEntitlement' available as request attribute 

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'contractEntitlement' available as request attribute 

私は理解していないことです。

私の休止状態の設定は

<mapping class="com.at.ccts.model.ContractHeader" /> 
<mapping class="com.at.ccts.model.ContractEntitlement" /> 

は、すべてのヘルプは高く評価されます。このため

+0

私はあなたがここに投稿している完全なJSPだとは思わない... –

+0

それはjspの形式ではありません。 –

+0

スニペットの代わりにJSP全体を追加してください。 –

答えて

0

理由は私のjspである私がコメントアウト:

<!-- <td> 
     <form:input name="category" type="text" path="contractEntitlement.category"/> 
     </td> --> 

しかし、春はまだそれをチェックし、エラーをスロー何らかの理由。コードのピアスを削除すると修正されました。私はなぜそれが出ているのか不思議です。とにかにこれは私の問題とページが正しくロードされている問題を修正しました。

関連する問題