从接收JSP响应的Controller调用modelAndView函数

时间:2018-08-13 08:02:37

标签: java spring-mvc controller modelandview

我有一个接收JSP响应的控制器,我想再次将一些参数传递给另一个ModelAndView函数。我正在尝试执行此操作,以便可以重用代码并在一次执行中执行2个控制器功能。这是我如何调用它的代码段。

下面是从JSP接收响应的代码:

@RequestMapping(value = "/schedulebatch",method = RequestMethod.POST,params="insertData")
public @ResponseBody String addBatch(ModelMap model,HttpServletRequest request,HttpSession usersession,@RequestParam(value="batchname",required=false) String batchname,
        @RequestParam(value="fromdate",required=false) String fromdate,
        @RequestParam(value="todate",required=false) String todate,
        @RequestParam(value="partners",required=false) String partners,
        @RequestParam(value="interval",required=false) String interval,
        @RequestParam(value="hiddenschedule",required=false) String starttype2,
        @RequestParam(value="starttype",required=false) String starttype,
        @RequestParam(value="daytype",required=false) String daytype,
        @RequestParam(value="daytype2",required=false) String daytype2,
        @RequestParam(value="mstart",required=false) String mstart,
        @RequestParam(value="agentid",required=false) int agentid,
        @RequestParam(value="fromHoursAdd",required=false) String fromHours,
        @RequestParam(value="fromMinutesAdd",required=false) String fromMinutes,
        @RequestParam(value="upfile",required=false) MultipartFile upfile) throws Exception {

注意:它可以很好地执行控制器,但不能执行下面的代码片段。

String scid = dao.getScheduleID();
            System.out.println("Schedule ID: "+scid);
            ModelAndView upload = uploadBatch(model,request,usersession,upfile,scid);

和下面是我要执行的modelAndView:

public ModelAndView uploadBatch(ModelMap model,HttpServletRequest request,HttpSession usersession,
        MultipartFile upfile,
        String scid) throws IOException{
    System.out.println("TEST UPLOAD BATCH PRINT==============================");
    ApplicationContext  context = new ClassPathXmlApplicationContext("Spring-Customer.xml");
    WalletTransferDAO walletdao = (WalletTransferDAO)context.getBean("wallettransferDAO");  
    TopupDAO dao = (TopupDAO)context.getBean("topupDAO");   

    ModelAndView modelAndView = new ModelAndView("redirect:batch-import");

    List<WalletTransferModel> partnerlist = walletdao.getPartners(usersession);
    List<BatchModel> batch = dao.fillBatchImportList(scid);

    String[] FILE_EXTENSION = upfile.getOriginalFilename().split("\\.");        

    if (upfile.isEmpty()) {
        modelAndView.addObject("schedid",scid);
        modelAndView.addObject("msg", "<label style='color:#FF0000'>Error: No CSV file chosen.</label> ");
        modelAndView.addObject("batchimportlist",batch);
        modelAndView.addObject("partners",partnerlist);
        modelAndView.addObject("user",usersession.getAttribute("USERLEVEL"));
        ((AbstractApplicationContext) context).close(); return modelAndView;
    }else if(!FILE_EXTENSION[1].equalsIgnoreCase("csv")){
        modelAndView.addObject("schedid",scid);
        modelAndView.addObject("msg", "<label style='color:#FF0000'>Error: Please Upload CSV file only.</label> ");
        modelAndView.addObject("batchimportlist",batch);
        modelAndView.addObject("partners",partnerlist);
        modelAndView.addObject("user",usersession.getAttribute("USERLEVEL"));
        ((AbstractApplicationContext) context).close(); return modelAndView;
    }

    boolean flg = false;

  try{

        byte[] bytes = upfile.getBytes();

        // Creating the directory to store file

        ClassLoader classLoader = getClass().getClassLoader();
        File dir = new File(classLoader.getResource("fileupload").getFile());
        System.out.println(dir.getAbsolutePath() + "/tmpFiles");
        if (!dir.exists()){
            dir.mkdirs();
        }

        String name = "batchlist.csv";

        File serverFile = new File(dir + File.separator + name);
        BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile));
        stream.write(bytes);
        stream.close();

        logger.info("Server File Location="+ serverFile);

        flg = dao.insertbatchimport(serverFile,scid);
        System.out.println(flg);

    } 
    catch (Exception e) {
        System.out.println("Error in CsvFileReader !!!");
        e.printStackTrace();
    }
    String response = "";
    if(flg){
        response = "<label style='color:#008080'>CSV file successfully uploaded</label>";
    }else{
        response = "<label style='color:#FF0000'>Error: Please try again</label>";
    }
    modelAndView.addObject("schedid",scid);
    modelAndView.addObject("msg",response);
    modelAndView.addObject("batchimportlist",batch);
    modelAndView.addObject("partners",partnerlist);
    modelAndView.addObject("user",usersession.getAttribute("USERLEVEL"));
    ((AbstractApplicationContext) context).close(); return modelAndView;
}

0 个答案:

没有答案