如何从JS函数到控制器类获取数据

时间:2016-08-16 07:13:31

标签: javascript java jquery ajax spring-mvc

如何在控制器类中获取公司名称,当我打印String cname = req.getParameter(" companyName")时,它显示未定义。

添加快照以供参考。

JS

编辑公司控制器

@RequestMapping(value = "/editCompany", method = RequestMethod.GET)
    public ModelAndView editCompany(ModelAndView model, HttpServletRequest req, HttpServletResponse res) {

        String cname = req.getParameter("companyName");
        System.out.println(cname);

        //int companyId = companyDAO.GetCompanyId(req.getParameter("companyName"));
        Company company = companyDAO.getInfo(req.getParameter("companyName")) ;
        model.addObject("company", company);
        model = getDropdownList(model); 
        model.setViewName("editCompany");
        return model;
    }

JS

$("#EditBtn").click(function(e) {
      var companyName=$("#table tr.trActive td:first").html();
      $
    .ajax({
      type : "GET",
      url : "editCompany?companyName="+companyName,
      data : JSON.stringify(companyName),
      contentType: "text/plain",
      success : function(data) {

        alert('sucess');
      //viewCompanyViaAjax();
      },
      error : function() {
        alert('Error occured');
      }



});

Updated snapshot

1 个答案:

答案 0 :(得分:0)

在JS中 您不需要两种变体中的数据,因为它是Get,而不是Post方法。

第一个变体: 在JS中

url : "editCompany/"+companyName

编辑公司控制器

@RequestMapping(value = "/editCompany/{companyName}", method = RequestMethod.GET)
    public ModelAndView editCompany(@PathVariable String companyName, ModelAndView model, HttpServletResponse res) {
System.out.println(companyName);
...

第二个变体 在JS中

url : "editCompany?companyName="+companyName

编辑公司控制器

@RequestMapping(value = "/editCompany", method = RequestMethod.GET)
    public ModelAndView editCompany(@RequestParam("companyName") String companyName, ModelAndView model, HttpServletResponse res) {
System.out.println(companyName);
...