0

Web サイトのすべてのページに検索ボックスが必要です。フォームを作成するには、次の方法のように開始する必要があります。ただし、ユーザーが「/search」アドレスに到達した場合に便利です。次の場所にある tripadvisor の検索ボックスのようなすべてのページにあるフォームを開始するにはどうすればよいですすべてのページ ?メソッドを常に呼び出す必要がありますか?

サンプル初期化メソッド

@RequestMapping(value = "/search", method = RequestMethod.GET)
public String initCreationForm(Model model) {
    if (!model.containsAttribute(BINDING_RESULT_NAME)) {
        model.addAttribute(ATTRIBUTE_NAME, new Search());
    }
    return "search";
}

現在のフォーム

私の現在のフォームは次のようになります。

<form:form modelAttribute="search" role="form" method="GET">
.....
</form:form>
4

3 に答える 3

0

すべてのページにある tripadvisor の検索ボックスのように、すべてのページにあるフォームを開始するにはどうすればよいですか?

@ControllerAdvice次のようなモデル バインディング オブジェクトを追加するために使用します。

@ControllerAdvice
class GlobalControllerHandler {

   @ModelAttribute(ATTRIBUTE_NAME)
   public Search bindSearchModel(){
       return new Search();    
   } 
}

この場合@ModelAttribute、すべての @RequestMapping メソッドに適用されるメソッド。その後、現在のフォームは正常に機能します。

于 2015-03-24T07:47:18.803 に答える