2014-10-28 609 views
1

我想要一个JavaScript文件调用JavaSpring MVC控制器,然后控制器将执行其请求映射函数。如何从JS调用控制器,以便控制器可以执行其请求映射?

我不确定是否也可以将一个变量传递给控制器​​,以便它可以知道要执行的特定映射。如果可以证明如何做到这两点,那将是非常有用的。如果可以简单地告诉我如何通过JS调用控制器,这也会非常有用,并回答问题。

我的控制器将类似于以下内容:

@Controller 
@RequestMapping(value = "/waterquality/scale") 
public class NmWaidsController { 
    @RequestMapping(value = {"","/"}) 
    public String homePageWaids(){ 
     return "waterquality/scale/calmix"; 
    } 

我想JS调用这个控制器。

如果可能的话,我想做到以下几点,并有JS传递变量的方法,它看起来像下面这样:

@Controller 
@RequestMapping(value = "/waterquality/scale") 
public class NmWaidsController { 
    @RequestMapping(value = {"","/"}) 
    public String homePageWaids(int viewChoice){ 
     switch(viewChoice){ 
      case 1: 
       return "waterquality/scale/calmix"; 
       break; 
      case 2: 
       return "waterquality/scale/caloddo"; 
       break; 
      case 3: 
       return "waterquality/scale/calstiff"; 
       break; 
      default: 
       return error; 
       break; 
    } 

任何帮助,将不胜感激!提前致谢!

回答

1

以下是您正在寻找的示例。

@RequestParam会帮助你。

首先,JSON对象。

var loginData = { 
     memberId : "test1", 
     memberPw : "test2" 
} 

二,Ajax。

$.ajax({ 
     type: "POST", 
     url: "YouActionName", 
     data: loginData, 
     success: function (result) { 
      // do something. 
     }, 
     error: function (result) { 
      // do something. 
     } 
    }); 

最后,你的控制器。 请记住,RequestParam的键名必须与JSON的成员键名称匹配。这是区分大小写的,所以要小心。

@RequestMapping("/YourActionName") 
public String YourActionName(@RequestParam("memberId") String id, @RequestParam("memberPw") String pw){ 
    return new ModelAndView("ExpectedReturnView"); 
} 

连接事件听者是非常简单的。

如果你有HTML这样的...

<div id="exampleDiv"></div> 

然后使用基本的ID选择,你可以将这样的下方事件...

$('#exampleDiv').click(function(e) { 
    // do what you want when click this element. 
}); 
+0

这似乎是完美的!万分感谢!有几个问题,如果我不希望这个函数不做任何事情,而是调用控制器,那么需要成功和错误功能?另外要使用ajax,我需要在我的pom.xml文件中包含任何东西(maven文件来抓取需要的库)? 我使用弹簧STS IDE,如果有帮助的话。 – 2014-10-28 03:02:33

+0

另外,我是否需要命名$ .ajax任何东西,以便从按钮调用它?从我所知道的情况来看,它将是使用数据调用控制器的$ .ajax?我只是不知道如何。对不起,麻烦和非常感谢帮助! – 2014-10-28 03:10:56

+0

当然,您应该为Ajax实现成功失败回调,否则在连接失败时如何处理错误?您不需要在pom中添加额外的依赖项,但如果需要用户$ .Ajax,则需要包含jQuery。 – 2014-10-28 03:11:46

相关问题