2015-10-30 30 views
0

我正在處理一個收集信息的JSP,並在收到信息之後提交頁面關閉,然後轉到確認頁面。我不想要確認頁面。在JSP上單擊提交後,我只需要關閉該窗口。控制器上的返回值需要一個值。我可以在那裏放置什麼,可以讓它簡單地結束? 這是我的控制器:在java中控制器Spring MVC @RequestMapping不返回任何內容,只需關閉

@Controller 
//@SessionAttributes({"resultBoard", "filterBoard"}) 
public class NewEmployeeController { 

    NewEmployeeService newEmpService; 

    @Autowired 
    public NewEmployeeController(NewEmployeeService service){ 
     this.newEmpService = service; 
    } 

    @RequestMapping(value = "NewEmpInput", method = RequestMethod.GET) 
    public String promptEmployee(Model model) 
    { 
     //JSP can only reference 1 object, but need to reference many objects. So I put many classes inside EmployeeFormWrapper wrapper class. 
     model.addAttribute("myForm", new EmployeeFormWrapper()); 
     return "NewEmpInput"; 
    } 

    @RequestMapping(value = "NewEmpInput", method = RequestMethod.POST) 
    public String newEmployee(@ModelAttribute("myForm") EmployeeFormWrapper myForm) 
    { 

     NewEmployeeVM employee = myForm.getEmployee(); 
     ClientVM client = myForm.getClient(); 
     ProjectVM project = myForm.getProject(); 
     System.out.println("Employee = " + employee.getFirstName() + " " + employee.getLastName()); 
     System.out.println("Client = " + client.getText()); 
     System.out.println("Project = " + project.getText()); 

     newEmpService.saveNewEmployee(employee); 

     return "ConfirmNewEmp"; 
    } 
} 
+3

也許將Controller @RequestMapping方法設置爲無效的返回值,然後將一些javascript放在JSP中window.close? – Mel

回答

0

更改方法返回void。我說這個劇本到我的jsp:

<script type="text/javascript"> 
    function closeWindow() { 
     window.close(); 
    } 
</script> 

並更新了表格第一行中我的JSP這樣:

<form:form commandName="employee" modelAttribute="employee" onsubmit="closeWindow()"> 

我提交的JSP按鈕保持不變:

<p> 
    <input type="submit" value="Submit"> 
</p> 

現在它工作。謝謝。