Spring Frame Work,从JSP调用方法而无需重新加载或加载页面

时间:2017-06-03 18:03:32

标签: java spring jsp spring-mvc controller

我是春天新手。我有一个jsp项目,可以完成多项任务。每个按钮单击都与一个方法(addMoney,selectItem,confirm等)相关联。我想使用Spring调用这些java方法,而不是在每次调用后重新加载页面。这可能吗?如果不可能,那么在模型每个时间内返回JSP中所需的每个变量的最佳做法是什么?这就是我现在处理它的方式,我的控制器方法看起来都是一样的,除了一两行。 Ex下面:

@RequestMapping(value = "/addQuarter", method = RequestMethod.GET)
public String addQuarter(HttpServletRequest request, Model model) {
    service.addQuarter();
    List<Item> itemList = service.getAllItems();
    model.addAttribute("itemList", itemList);
    model.addAttribute("change", service.displayCurrency());
    model.addAttribute("message", "Quarter added");
    model.addAttribute("changeDisplay", "");
    model.addAttribute("selectedItem", service.selectItemById(Integer.parseInt(request.getParameter("id"))));
    return "index";
}

@RequestMapping(value = "/addDime", method = RequestMethod.GET)
public String addQDime(HttpServletRequest request, Model model) {
    service.addDime();
    List<Item> itemList = service.getAllItems();
    model.addAttribute("itemList", itemList);
    model.addAttribute("change", service.displayCurrency());
    model.addAttribute("message", "Dime added");
    model.addAttribute("changeDisplay", "");
    model.addAttribute("selectedItem", service.selectItemById(Integer.parseInt(request.getParameter("id"))));
    return "index";
}

1 个答案:

答案 0 :(得分:-1)

@Controller中的方法返回一个页面,其中包含可在jsp中使用的模型中的信息,这在服务器端解析并将html返回给浏览器。

如果您想修改页面而不重新加载完成您的页面,则必须使用AJAX,因此@Controller中的方法必须更改并回复邮件正文中的信息,例如一个JSON。

示例:

@ResponseBody @RequestMapping(value = "/addQuarter", method = RequestMethod.GET) public List<Item> addQuarter(HttpServletRequest request, Model model) { service.addQuarter(); List<Item> itemList = service.getAllItems(); return itemList; }

Here is a good tutorial spring-4-mvc-ajax