6

我是 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);

}

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

4

2 回答 2

9

忘记你现在做了什么。

处理程序方法有两种@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没有属性的a,但直接将属性添加到HttpServletRequest

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

返回String视图名称,但将属性添加到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";
}

有关接受的方法参数的更完整列表,请参阅官方文档的第 17.3.3 节。ModelAndView当您使用它时,还请阅读支持的返回类型以了解返回 a和返回 a之间的区别String

于 2013-09-09T03:06:52.247 回答
-2

虽然这不是正确的方法。

您可以使用模型属性之类的东西。

检查下面的链接以获得很多关于此的答案:

如何将模型属性从一个 Spring MVC 控制器传递到另一个控制器?

在 Spring MVC 中将参数从 JSP 传递到 Controller

于 2013-09-09T03:07:49.370 回答