Spring mvc 什么';Model和HttpServletRequest在SpringMVC中的不同用法是什么?HttpServletRequest能否完全替代Model?

Spring mvc 什么';Model和HttpServletRequest在SpringMVC中的不同用法是什么?HttpServletRequest能否完全替代Model?,spring-mvc,spring,Spring Mvc,Spring,我正在使用来开发我的web项目,但我想将参数传递给jsp页面,我发现了一个问题,希望得到一个答案: 和在SpringMVC中的用法有什么不同?HttpServletRequest能否完全取代模型? 我发现我可以用这两个来传递参数,我发现它们似乎有相同的效果。现在我想知道什么时候使用,什么时候使用,我觉得好像是一个重复的类,它可以被完全替换吗 例如,如果我想通过将用户列表和当前日期传递给jsp页面,我可以用三种不同的方式: 仅使用型号 @RequestMapping(value=“queryU

我正在使用来开发我的web项目,但我想将参数传递给jsp页面,我发现了一个问题,希望得到一个答案:

和在SpringMVC中的用法有什么不同?HttpServletRequest能否完全取代模型?

我发现我可以用这两个来传递参数,我发现它们似乎有相同的效果。现在我想知道什么时候使用,什么时候使用,我觉得好像是一个重复的类,它可以被完全替换吗

例如,如果我想通过将用户列表和当前日期传递给jsp页面,我可以用三种不同的方式:

  • 仅使用型号
@RequestMapping(value=“queryUserPage”)
公共字符串queryUserPage(int pageNo、int pageSize、Model){
PageBean PageBean=新的PageBean();
setPageNo(pageNo);
setPageSize(pageSize);
setResultList(userService.queryUserPage(pageBean));
addAttribute(“pageBean”,pageBean);
model.addAttribute(“currentTime”,new Date());
返回“settings/userManagement.jsp”;
}
-仅使用HttpServletRequest

@RequestMapping(value=“queryUserPage”)
公共字符串queryUserPage(int pageNo、int pageSize、HttpServletRequest){
PageBean PageBean=新的PageBean();
setPageNo(pageNo);
setPageSize(pageSize);
setResultList(userService.queryUserPage(pageBean));
setAttribute(“pageBean”,pageBean);
setAttribute(“currentTime”,new Date());
返回“settings/userManagement.jsp”;
}
-同时使用HttpServletRequestModel

@RequestMapping(value=“queryUserPage”)
公共字符串queryUserPage(int pageNo、int pageSize、HttpServletRequest请求、模型){
PageBean PageBean=新的PageBean();
setPageNo(pageNo);
setPageSize(pageSize);
setResultList(userService.queryUserPage(pageBean));
setAttribute(“pageBean”,pageBean);
model.addAttribute(“currentTime”,new Date());
返回“settings/userManagement.jsp”;
}
这三种方法都可以,但我不知道用Model代替HttpServletRequest有什么好处。有人能告诉我什么时候用Model以及什么时候用HttpServletRequest?Model有什么好处吗?它可以全部替换为HttpServletRequest吗


提前谢谢

选择权留给开发人员。但您需要记住的事情很少

如果使用
HttpServletRequest
,则必须显式映射变量并从前端获取变量(
request.getAttribute

没有比这更好的事情,这只是你的愿望。因为两者都是请求范围。 但是,如果您使用
模型
,您有几个优点

  • 无需映射,因为它将根据路径名自动查找(
    @modeldattribute
  • 只需使用注释(
    @Valid
    )即可完成验证
像这样,您还可以在b/w
@RequestParam
@modeldattribute
HttpServletRequest
中找到ask差异

有时
Model
也作为
HttpServletRequest
执行

唯一的问题是
HttpServletRequest
ServletContainer
Model
DispatcherServlet stack
处理


最后交给开发者,他/她可以根据他们的需要为您解答。

@Poori,这不是重复的问题,请仔细阅读我的问题@普瑞,请重新回答我的问题!你没有仔细阅读!它没有被标记为重复…它只是一种可能性…不需要担心…它需要10面旗帜而不仅仅是一个…可能是@Prasanna的重复:它需要5票,而不是10票(或者只有一张来自
spring
gold star的票)。