如何删除使用会话管理bean作为数据资源的jsf页面中的信息?
我有一个关于两个Javabean的问题,它们在faces-config.xml中声明,在JSF1.2中有两个不同的托管bean作用域。首先,我想解释一下我现在遇到的问题 我可以将一些信息从我的java系统导出到另一个系统中(我认为数据的细节及其具体的传输方式并不重要) 重要的是,在我看来,触发导出的JavaBean具有托管bean范围“会话”。数据导出在我的系统后台工作,需要此会话范围 用户可以在jsf/xhtml页面中看到一条信息,即导出已启动,下面是具体问题:如何删除使用会话管理bean作为数据资源的jsf页面中的信息?,jsf,jsf-1.2,scopes,Jsf,Jsf 1.2,Scopes,我有一个关于两个Javabean的问题,它们在faces-config.xml中声明,在JSF1.2中有两个不同的托管bean作用域。首先,我想解释一下我现在遇到的问题 我可以将一些信息从我的java系统导出到另一个系统中(我认为数据的细节及其具体的传输方式并不重要) 重要的是,在我看来,触发导出的JavaBean具有托管bean范围“会话”。数据导出在我的系统后台工作,需要此会话范围 用户可以在jsf/xhtml页面中看到一条信息,即导出已启动,下面是具体问题: <ui:repeat v
<ui:repeat value="#{adminArea.informationForExport}" var="info">
<h:outputText value="#{info}" />
</ui:repeat>
该信息每次都是HTMLDOM的一部分,并且不会消失,如果用户在我的系统中观看另一个xhtml页面并返回到该xhtml页面,他就可以开始数据导出
我的Bean“adminArea”是在faces-config.xml中用托管Bean作用域“session”声明的,并实现了数据导出的java代码:
<managed-bean>
<managed-bean-name>adminArea</managed-bean-name>
<managed-bean-class>resources.adminArea</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
行政区
资源管理区
一场
声明的bean“adminArea”在bean“newCalculation”中被称为托管属性,该bean是托管bean作用域“request”:
新计算
资源.计算
要求
行政区
#{adminArea}
这个bean需要托管bean作用域“request”
将bean“adminArea”的托管bean范围从“session”更改为“request”的唯一方法是什么?但这导致了问题,我的数据导出在后台无法工作
或者我可以用其他仪器解决这个问题吗
格里茨
Marwied最终答案:
这是用java代码实现的。您可以通过按下jsf页面上的命令按钮来触发它。在我的数据库中设置一个标志,另一个进程每30秒调用一次数据库并执行数据导出。如果设置了falg,用户将获得jsf页面上的信息,而这不会用java代码实现。。。我理解这一点,就像你创建一个新线程并在那里开始一些过程一样。我错了吗?线什么的都没有。对于这个jsf页面,我需要一个init方法或其他方法,它删除了jsf页面上用户的信息。首先,如果您想在特定页面上显示特定信息,请尝试使用视图范围。看一看请求范围和视图范围之间的区别。我还建议您拒绝使用xml配置的bean,转而使用注释。你能读到的好评论。
<managed-bean>
<managed-bean-name>newCalculation</managed-bean-name>
<managed-bean-class>resources.calculation</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>adminArea</property-name>
<value>#{adminArea}</value>
</managed-property>
</managed-bean>