ServletContext 无法通过在 Spring MVC 中将其作为参数传递来注入
ServletContext not able to inject through by passing it as an parameter in Spring MVC
大家好,我正在尝试在我的以下方法中获取 ServletContext,但是在将它作为参数传递时没有被注入,因为它应该由 spring 自动注入,但它不工作不知道为什么
这是我想要 servletcontext
的以下代码
@RequestMapping(value="/savetodo", method = RequestMethod.POST)
public String saveTodo(@ModelAttribute("todoEntity") TodoEntity todoEntity,Model m,ServletContext sc) {
todoEntity.setTodoDate(new Date());
ArrayList<TodoEntity> allTodosArrayList = (ArrayList<TodoEntity>) sc.getAttribute("allTodos");
if (allTodosArrayList==null) {
allTodosArrayList = new ArrayList<TodoEntity>();
}
allTodosArrayList.add(todoEntity);
sc.setAttribute("allTodos",allTodosArrayList);
allTodosArrayList.stream().forEach(System.out :: println);
m.addAttribute("page","viewtodos");
return "home";
}
但是当我尝试通过将 ServletContext 声明为 class 变量以及像这样的自动装配注释并从方法
中删除参数来尝试使用自动装配时
@Autowired
ServletContext sc;
它工作得很好所以我的重点是为什么当我将它作为 参数.
传递时它不起作用
ServletContext 不是 Spring 控制器中的自动解析方法参数之一 https://docs.spring.io/spring/docs/5.0.5.RELEASE/spring-framework-reference/web.html#mvc-ann-methods
大家好,我正在尝试在我的以下方法中获取 ServletContext,但是在将它作为参数传递时没有被注入,因为它应该由 spring 自动注入,但它不工作不知道为什么 这是我想要 servletcontext
的以下代码@RequestMapping(value="/savetodo", method = RequestMethod.POST)
public String saveTodo(@ModelAttribute("todoEntity") TodoEntity todoEntity,Model m,ServletContext sc) {
todoEntity.setTodoDate(new Date());
ArrayList<TodoEntity> allTodosArrayList = (ArrayList<TodoEntity>) sc.getAttribute("allTodos");
if (allTodosArrayList==null) {
allTodosArrayList = new ArrayList<TodoEntity>();
}
allTodosArrayList.add(todoEntity);
sc.setAttribute("allTodos",allTodosArrayList);
allTodosArrayList.stream().forEach(System.out :: println);
m.addAttribute("page","viewtodos");
return "home";
}
但是当我尝试通过将 ServletContext 声明为 class 变量以及像这样的自动装配注释并从方法
中删除参数来尝试使用自动装配时@Autowired
ServletContext sc;
它工作得很好所以我的重点是为什么当我将它作为 参数.
传递时它不起作用ServletContext 不是 Spring 控制器中的自动解析方法参数之一 https://docs.spring.io/spring/docs/5.0.5.RELEASE/spring-framework-reference/web.html#mvc-ann-methods