【问题标题】:My form bean in @SessionAttributes unkown@SessionAttributes 中的我的表单 bean 未知
【发布时间】:2014-02-07 05:23:32
【问题描述】:

我有一个表单 bean,我想将它存储在会话中,所以在包含欢迎处理程序的控制器中,我放了这个:

@Controller
@SessionAttributes({"searchcontact","cities"})

我的表格:

<form:form modelAttribute="searchcontact"  ... >
...
<form:options  items="${cities}" itemValue="id" itemLabel="name" />

我只是用属性searchcontact 得到了这个错误:

Etat HTTP 500 - java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'searchcontact' available as request attribute

属性cities可以在所有会话中访问。

【问题讨论】:

    标签: spring spring-mvc


    【解决方案1】:

    @SessionAttributesis not meant to store data across controllers。它旨在在给定控制器的请求之间存储数据。

    要在会话中存储数据以供其他控制器访问,请使用HttpSession.setAttribute()

    【讨论】:

    • 不正确读取this@SessionAttributes 中的数据被添加到会话中(HttpSession
    • 它可能会向HttpSession 添加数据,但它旨在用于特定控制器对话的上下文中。您可以发布呈现“searchcontact”表单的控制器代码吗?
    • 我有一个搜索部分,我在每个 jsp 页面中加载,我发现问题来自 -> 我在请求中复制的 searchcontact 也只是使用由 @987654329 注释的控制器的处理程序@ 在其他控制器中,甚至 bean searchcontact 都存储在 session、spring 或 jsp 进程中,在请求中寻找他并没有找到他。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多