gpt4 book ai didi

java - 使用 spring mvc 从 HttpServletRequest 获取数据

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:51 24 4
gpt4 key购买 nike

我是 Spring MVC 的新手。

我想实现的是在HttpServletRequest中添加一个数据映射;示例:

private NewRequestService newRequest = new NewRequestService();

public ModelAndView inputRequiredInfo(@ModelAttribute("requestForm") HttpServletRequest request) {
request.setAttribute("mylist", newRequest.loadAllUserDomainType());

return new ModelAndView("request/selectDomainUser","requestForm", request);

}

然后在 View jsp 文件中,我想获取传递到请求中的那些数据并将其放入下拉列表中。

最佳答案

忘记你现在做了什么。

@Controller 处理程序方法有两种方法可以使属性对 JSP 可用。

  1. 让您的方法接受一个HttpServletRequest 参数并直接将目标对象设置为请求属性。
  2. 使您的方法接受ModelModelMapModelAndViewMap 参数并设置目标对象作为该 Model 参数的请求属性。您还可以让您的方法返回上述任何内容。

对于2.,Spring 会将您添加到Model 的元素放入HttpServletRequest 属性中。然后,它们将在呈现 JSP 时可用。

让我们举几个例子:

返回一个具有一个属性的ModelAndView

public ModelAndView inputRequiredInfo() {
Map map = newRequest.loadAllUserDomainType();

return new ModelAndView("request/selectDomainUser","mylist", map);
}

返回一个没有属性的ModelAndView,但是直接给HttpServletRequest加上属性

public ModelAndView inputRequiredInfo(HttpServletRequest request) {
Map map = newRequest.loadAllUserDomainType();
request.setAttribute("mylist", map);
return new ModelAndView("request/selectDomainUser");
}

返回一个 String View 名称,但将属性添加到作为参数传递的 Model

public String inputRequiredInfo(Model model) {
Map map = newRequest.loadAllUserDomainType();
model.addAttribute("mylist", map);
return "request/selectDomainUser";
}

在上面的示例中,您可以传递 ModelModelMapjava.util.Map

相同但使用 HttpServletRequest

public String inputRequiredInfo(HttpServletRequest request) {
Map map = newRequest.loadAllUserDomainType();
request.setAttribute("mylist", map);
return "request/selectDomainUser";
}

有关可接受的方法参数的更完整列表,请参阅 section 17.3.3 of the official documentation.当您阅读它时,还请阅读支持的返回类型以了解返回 ModelAndView 和返回 String 之间的区别。

关于java - 使用 spring mvc 从 HttpServletRequest 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18690916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com