2016-01-21 100 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控制器并正确提取提供者的值。

无论如何,请让我知道是否有更好的方法来做到这一点。