2017-12-08 9 views
0

私はindex.jspにロードする必要がある次のSpringフォームを持っています。BindingResultとBean名 'hire'のプレーンターゲットオブジェクトが要求属性として利用できません

<form:form method="POST" id="bookingForm" action="hire" modelAttribute="hire"> 
    <div class="fl1"> 
     <div class="tmInput"> 
      <form:input path="from" name="from" id="from" placeHolder="From:" type="text" /> 
     </div> 
    </div> 
    <div class="fl1"> 
     <div class="tmInput mr0"> 
      <form:input path="to" name="to" id="to" placeHolder="To:" type="text" /> 
     </div> 
    </div> 
    <div class="clear"></div> 
    <a href="#" class="btn" data-type="submit">Book Now!</a> 
</form:form> 

コントローラindex.jspは次のようになります。

@Controller 
public class HomeController { 
    @GetMapping("/") 
    public String getIndexPage(@ModelAttribute("hire") Hire hire, Model model) { 
     model.addAttribute(hire); 
     return "index"; 
    } 
} 

送信時に、フォームは次のコントローラで処理されます。

@Controller 
@RequestMapping("/") 
public class HireController { 
    @PostMapping("hire") 
    public String hire(@ModelAttribute("hire") Hire hire, BindingResult result, ModelMap model){ 
     // TODO: 12/8/17 Handling the booking 
     return "hiresuccess";// TODO: 12/7/17 Return whatever the view name 
    } 
} 

しかし、私はindex.jspを読み込むことができません。それはエラーNeither BindingResult nor plain target object for bean name 'hire' available as request attributeに終わります。私は何が間違っているのか把握するのをとても頑張ったが、まだ見つけられなかった。私は意図的に質問の長さを減らすためにログを省略しています。誰でも私が間違っていることを見ることができますか?私はこの問題が何度も提起されていることを知っています。これは重複した質問かもしれないことを意味します。しかし、私はそれらの問題のための解決策を見ることができません。

答えて

0

コントローラメソッドを以下のように変更します。 @ModelAttributeの部分を削除し、メソッド内からhireオブジェクトを渡す必要があります。 それ以外の場合は、リクエストのparamsのオブジェクトを探し、それを取得しなければ、取得している例外がスローされます。

@Controller 
public class HomeController { 
    @GetMapping("/") 
    public String getIndexPage(Model model) { 
     Hire hire = new Hire; 
     model.addAttribute(hire); 
     return "index"; 
    } 
} 
+0

のNop ..良いん.. :( –

+0

まだ同じエラー? – mhshimul

+0

うん...同じエラー! –

関連する問題