2016-07-05 8 views
2

私は春に検索エンジンを構築しており、現時点でデータベースから結果を照会できます。私は、オブジェクトが空の場合文がチェックするために、「あれば」、それが発見何もないというメッセージを返さなければならない作ら パラメータがない場合は、春のチェック

www.myurl.com/jobs=?test

のように私のURLですデータベースに格納されます。しかし、私は

www.myurl.com/jobs

に行くとき、私は、同じメッセージが表示されます。

これを修正する方法はありますか?そのメッセージが表示されませんか?パラメータがないかどうかを確認する必要があります。返すか、何か他のことを行う必要があります。

@RequestMapping(value = "/jobs", method=RequestMethod.GET) 
public String search(@RequestParam(value="search", required=false) String result, Model model){ 
    model.addAttribute("results", jobsDao.getQueryresult(result)); 
    return "result"; 
} 

答えて

2

残りのコードの外観によっては、これを処理する方法はいくつかあります。

間違いなくクリーンなアプローチは、それぞれのケースを区別するためにOptionalを使用することです:

@RequestMapping(value = "/jobs", method=RequestMethod.GET) 
public String search(@RequestParam(value="search") Optional<String> query, Model model) { 
    model.addAttribute("results", jobsDao.getQueryresult(query)); 
    if (query.isPresent()) { 
     return "results"; 
    } else { 
     return "jobs-index"; 
    } 
} 

は、Java 8のOptionalを使用できない場合は、2つのコントローラメソッドを作成し、param修飾子を使用してマッピングを絞り込むことができます。

// this will only get triggered if the URL contains the "search" parameter 
@RequestMapping(value = "/jobs", method=RequestMethod.GET, params="search") 
public String search(@RequestParam(value="search") String query, Model model) { 
    model.addAttribute("results", jobsDao.getQueryresult(query)); 
    return "results"; 
} 

@RequestMapping(value = "/jobs", method=RequestMethod.GET) 
public String search() { 
    return "jobs-index"; 
} 
+0

ありがとうございます – NoR3s

関連する問題