Java Spring框架,从JSP调用方法而不重新加载或加载页面

Java Spring框架,从JSP调用方法而不重新加载或加载页面,java,spring,jsp,spring-mvc,controller,Java,Spring,Jsp,Spring Mvc,Controller,我是春天的新手。我有一个jsp项目,可以做很多事情。每次点击按钮都与一种方法(addMoney、selectItem、confirm等)相关联。我想使用Spring调用这些java方法,而不用在每次调用后重新加载页面。这可能吗?如果不可能,那么每次在模型中返回JSP中所需的每个变量的最佳实践是什么?这就是我现在处理它的方式,我的控制器方法看起来都一样,除了一两行。举例如下: @RequestMapping(value = "/addQuarter", method = RequestMethod

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

@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";
}
@RequestMapping(value=“/addQuarter”,method=RequestMethod.GET)
公共字符串addQuarter(HttpServletRequest请求,模型){
service.addQuarter();
List itemList=service.getAllItems();
model.addAttribute(“itemList”,itemList);
model.addAttribute(“change”,service.displayCurrency());
model.addAttribute(“消息”,“添加季度”);
model.addAttribute(“changeDisplay”,即“”);
model.addAttribute(“selectedItem”,service.selectItemById(Integer.parseInt(request.getParameter(“id”)));
返回“索引”;
}
@RequestMapping(value=“/addDime”,method=RequestMethod.GET)
公共字符串AddQTime(HttpServletRequest请求,模型){
service.addDime();
List itemList=service.getAllItems();
model.addAttribute(“itemList”,itemList);
model.addAttribute(“change”,service.displayCurrency());
model.addAttribute(“消息”,“添加了一角”);
model.addAttribute(“changeDisplay”,即“”);
model.addAttribute(“selectedItem”,service.selectItemById(Integer.parseInt(request.getParameter(“id”)));
返回“索引”;
}

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

如果要修改页面而不重新加载完成页面,则必须使用
AJAX
,为此,
@Controller
中的方法必须更改并响应消息体中的信息,例如JSON

例如:


@应答器
@RequestMapping(value=“/addQuarter”,method=RequestMethod.GET)
公共列表addQuarter(HttpServletRequest请求,型号){
service.addQuarter();
List itemList=service.getAllItems();
返回项目列表;
}


尝试使用ajax调用