首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >confirmDialog中的RequestScoped bean已销毁

confirmDialog中的RequestScoped bean已销毁
EN

Stack Overflow用户
提问于 2012-05-05 23:22:07
回答 1查看 1.1K关注 0票数 2

我有RequestScoped bean,因为我用记录将用户从dataTable重定向到编辑页面。在这个dataTable中,我有删除按钮:

代码语言:javascript
运行
复制
<p:column>
    <p:commandButton update=":deleteNewsDialog" oncomplete="deleteNewsDlg.show()" icon="ui-icon-closethick">
        <f:setPropertyActionListener value="#{news}" target="#{newsBean.news}" />
    </p:commandButton>
</p:column>

下面是对话框:

代码语言:javascript
运行
复制
<p:confirmDialog id="deleteNewsDialog" message="Czy na pewno chcesz usunąć wiadomość o tytule &quot;#{newsBean.news.title}&quot;?"
    header="Usuwanie wiadomości" severity="alert"
    widgetVar="deleteNewsDlg" appendToBody="true">
    <h:form>
        <p:commandButton value="Usuń" actionListener="#{newsBean.delete}" update=":newsesTableForm:newsesTable, :newsesTableForm:newsGrowl"/>
        <p:commandButton value="Anuluj" oncomplete="deleteNewsDlg.hide();"/>
    </h:form>
</p:confirmDialog>

当newsBean.delete被触发时,newsBean就不再存在了,所以我得到了很多丑陋的验证异常。我还有其他类似的ViewScoped beans页面,它在那里工作得很棒。帮助?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-06 01:53:18

请求作用域bean的生命周期恰好是一个HTTP请求/响应。因此,使用表单检索整个视图已经是一个HTTP请求/响应。请求作用域的bean在响应结束时被回收。当您在视图上触发一个ajax请求时,实际上是在发送一个新的HTTP请求。这将创建一个新的请求作用域bean,该bean在HTTP响应结束时被丢弃。因此,同一视图上的每个ajax请求都有自己的请求作用域bean实例。

如果您需要维护与视图相关的数据,这不是您想要的。您需要将bean放在视图作用域中。只要您通过ajax与相同的视图进行交互,并在操作侦听器方法中返回nullvoid,bean就会一直存在。请注意,当您返回一个String时,即使是空的,视图也会被重新创建,因此视图作用域的bean将被丢弃。

另请参阅:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10463231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档