2016-01-21 95 views
0

所以我的問題總之:我有一個按鈕的HTML頁面。點擊該按鈕後,我想轉到另一個頁面。看起來很簡單,但我無法弄清楚。jQuery按鈕點擊+彈簧mvc導航

所以,我的按鈕操作的邏輯是這樣的:

$("#go").click(function() { 
      var source = $("#dropdown").text(); 
      $.ajax({ 
       type : "GET", 
       url : "mainpage.html", 
       data: {provider: source} 
      }); 
     }) 

現在我的控制器看起來是這樣的:

@Controller 
    public class MainController { 
    @RequestMapping(value = "/hello", method = RequestMethod.GET) 
    public ModelAndView hello() { 
     ModelAndView mav = new ModelAndView(); 
     mav.setViewName("index"); 
     return mav; 
    } 

    @RequestMapping(value = "/mainpage", method = RequestMethod.GET) 
    public String goToMainPage(@RequestParam("provider") String provider) { 
     System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@" + provider.trim()); 
     return "empty"; 
    } 
} 

所以故事/hello(= index.jsp)相關的頁面上啓動。該頁面被找到,顯示,一切都很好。然而,當我點擊y按鈕時,我可以看到打印出一串'@'符號,但是/ hello(index.jsp)的頁面會再次顯示,而不是/mainpage的頁面(應該是empty.jsp該文件就在那裏到另一個)。

我也嘗試返回一個ModelAndView,但這並沒有幫助。我試圖把這個控制器分成兩部分,但它沒有幫助。我試圖使用POST而不是GET,你知道發生了什麼......

這可能是一個愚蠢的問題,但我對Spring MVC完全陌生。

+0

你爲什麼通過ajax做到這一點?如果您正在從一個頁面導航到另一個頁面,只需使用所需的參數對URL進行GET或POST操作即可。 – minion

+0

某處我讀到$ .post只是$ .ajax(...「POST」...)的縮寫;我嘗試使用一個簡單的帖子/得到,但不幸的是,這並不能解決我的問題。 – TamasGyorfi

回答

0

好吧,最後我明白了。 我將我的jQuery功能更改爲:

$("#go").click(function() { 
     var source = $("#dropdown").text(); 
     window.location.href='/mainpage?provider='+source; 
    }); 

和控制器方法GET。 這也通過MVC控制器並正確提取提供者的值。

無論如何,請讓我知道是否有更好的方法來做到這一點。