我是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文件中,我想获取那些传入请求并将其放入下拉列表的数据。
答案 0 :(得分:8)
忘掉你现在所做的事。
@Controller
处理程序方法有两种方法可以使属性可用于JSP。
HttpServletRequest
参数,并将目标对象直接设置为请求属性。Model
,ModelMap
,ModelAndView
或Map
参数,并将目标对象设置为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
视图名称,但将属性添加到作为参数传递的Model
public String inputRequiredInfo(Model model) {
Map map = newRequest.loadAllUserDomainType();
model.addAttribute("mylist", map);
return "request/selectDomainUser";
}
在上面的示例中,您可以通过Model
,ModelMap
或java.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
和返回{{1}之间的区别}。
答案 1 :(得分:-2)
这不是正确的方法。
您可以使用类似于模型属性的内容。
请查看以下链接,了解有关此问题的大量答案:
How to pass model attributes from one Spring MVC controller to another controller?