gpt4 book ai didi

Spring MVC : @SessionAttributes shared among controllers?

转载 作者:行者123 更新时间:2023-12-03 11:33:38 27 4
gpt4 key购买 nike

我有一个用于搜索和结果列表的抽象 Controller 支持类:

@Controller
@SessionAttributes("query")
public abstract class SearchController<Q extends SearchQuery> {
@RequestMapping
public String performSearch(@ModelAttribute("query") Q query) {
....
}

@ModelAttribute("query")
public abstract Q createDefaultSearchQuery();
}

几个实际的搜索 Controller 扩展了这个基类。

在访问了其中一个 Controller (比如 /searchBooks.html 使用 BookSearchQuery implements SearchQuery )之后,查询被正确存储在 session 中,可用于后续请求。

但是,当我访问另一个 Controller (比如 /searchAuthors.html 使用 AuthorSearchQuery implements SearchQuery )时,来自最后一个请求( BookSearchQuery )的查询仍在用于新 Controller ,导致 ClassCastException稍后的。

我试过移动 @SessionAttribute从支持类到实现类的注释,无济于事。

是我做错了什么还是设计使然?我能做什么?

非常感谢!

最佳答案

我刚刚在 Spring 3.0.2 上尝试过这个,并且 Controller 之间不共享 session 属性。事实上,我正在寻找相反的效果,这就是我发现的。

关于Spring MVC : @SessionAttributes shared among controllers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4016532/

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