2016-07-05 72 views
2

我在Spring中構建搜索引擎,目前我可以從數據庫查詢結果。我的URL就像是春季檢查是否沒有參數

www.myurl.com/jobs=?test

我做了一個「如果」來檢查語句如果對象是空的,必須返回一個消息,有什麼發現在數據庫中。然而,當我去

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您可以創建兩個控制器的方法和使用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

相關問題