2014-04-16 52 views
0

我們使用spring3MVC框架開發應用。我們有創建,更新和刪除reocords的功能,對於每個場景,當記錄被創建,更新或刪除時,郵件都必須發送給用戶。但是,有一個問題是,我在內部創建多次打擊控制器,並且多次向用戶發送郵件。我們如何防止多次擊中控制器。當我調試我可以看到控制器多次擊中控制器。我是否需要修改xml配置文件中的任何內容? 以下是樣本代碼控制器被擊中多次 - Spring MVC的

@RequestMapping(value = "/createRecord", method = RequestMethod.GET) 
public ModelAndView insertRecord(HttpServletRequest request, 
    HttpServletResponse response, 
     @ModelAttribute("requestDTO") ATRRequestDTO dto, 
     BindingResult beException, 
     @RequestParam("buttonName") String buttonName, 
     @RequestParam("id") String atrID) throws IOException { 

    // create session if its not available 
    HttpSession session = request.getSession(true); 
    ModelAndView mav = new ModelAndView(); 
    try{ 
     //code to insert the data if not exists 
     if(conditinal check){ 
      sendMail();//if succesfully inserted record mail will be sent 
     } 
     mav.setViewName("atrRequest"); 
     mav.addObject("dataBean", dataBean); 
     return mav; 
    } catch(Exception e) { } 
    return mav; 
} 

在此先感謝。

+1

你是什麼意思約「但一個問題是,當IAM內部創建其擊球控制器多次和電子郵件被多次發送到用戶的?發佈一些代碼 – gipinani

+0

包含上面的代碼.. – participantjava

+0

但爲什麼這是多次命中?你在內部創建什麼意思?對不起,但不容易理解..對我來說:) – gipinani

回答

0

控制器可擊多次,唯一的辦法是,如果客戶端多次調用該控制器。

您需要調試調用代碼,以瞭解爲什麼進行多次調用,可能是用戶在發送郵件時刷新瀏覽器,在按鈕上點擊多次,而前一個請求仍在處理中。

嘗試在用戶界面中禁止的行爲,而Ajax請求的響應尚未收到,並且一旦接收到先前請求的響應再次重新啓用它們。