Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SpringMVC3中,将对象从一个控制器动作传递到另一个控制器动作_Spring - Fatal编程技术网

在SpringMVC3中,将对象从一个控制器动作传递到另一个控制器动作

在SpringMVC3中,将对象从一个控制器动作传递到另一个控制器动作,spring,Spring,在我的项目中,我在公司和地点之间有一对多的映射。在添加地点时,我需要公司对象。 我有两个不同的公司和地点控制员 公司内部控制器: 阿德公司 @RequestMapping(value = "/add", method = RequestMethod.POST) public String addCompany(@ModelAttribute("company") Company company, BindingResult result,Model model) { companySer

在我的项目中,我在公司和地点之间有一对多的映射。在添加地点时,我需要公司对象。 我有两个不同的公司和地点控制员

公司内部控制器:
阿德公司

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addCompany(@ModelAttribute("company")
Company company, BindingResult result,Model model) {
    companyService.addCompany(company);
   return "companyPage";
  }
更新公司

@RequestMapping(value = "/update", method = RequestMethod.POST)
public String updateCompany(@ModelAttribute("company")
Company company, BindingResult result,@RequestParam(value = "submitVal") String updateOrRestore
,Model model) {

    if (updateOrRestore.equalsIgnoreCase("update")) {
            companyService.updateCompany(company);
            model.addAttribute("location", new Location());

        } else if (updateOrRestore.equalsIgnoreCase("restore")) {
            Company prevCompany = companyService.restoreCompany();
            model.addAttribute("company", prevCompany);
            model.addAttribute("location", new Location());
        }

      return "companyPage";
}
位置控制器中:
添加位置

@RequestMapping(value="/addLocation", method = RequestMethod.POST )
public String addLocation(@ModelAttribute("location")
Location location,BindingResult reult, Model model){
    logger.info("Location is added"+location);
    //Here b4 adding location in db i want to set company obj
    //location.setCompany(company);
    locationService.addLocation(location);
}

如何获取在公司控制器操作中保存或更新的公司对象???

只需借助其ID从数据库获取公司对象即可。 您必须在表单post内的隐藏输入框中维护此ID,并在控制器中执行如下操作

@RequestMapping(value="/addLocation", method = RequestMethod.POST )
public String addLocation(@ModelAttribute("location")
Location location,BindingResult reult, Model model,@requestParam("cmpID") long ID){
    //Company companyObj=get from DB with help of ID
    //location.setCompany(companyObj);
    locationService.addLocation(location);
    return "yourview";
}

将companyID用作隐藏在表单中,并使用该ID获取位置中的company对象controller@OomphFortuity如何做到这一点??任何示例或参考都可以通过Get Post重定向为我们提供视图和控制器的确切流程