我有一个接收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;
}