在从一个控制器“跳转”到另一个控制器时存储inputText值

时间:2011-09-19 12:08:29

标签: java jsf-2

我有以下面具/视图:

input mask

输入名称和说明后,我可以点击“添加现有”按钮添加现有属性列表。 这将打开另一个掩码/视图,我可以从现有属性列表中进行选择。这个(新的)蒙版/视图也有它自己的控制器和模型。

当我完成选择后,我有另一个按钮让我回到这个面具。

问题是当我回来时,名称和描述字段是空的。 发生这种情况是因为当我单击“添加现有按钮”时,不会调用此掩码的控制器/模型,并且不会存储这些值。

如何避免这种情况并存储值?

感谢您的帮助 弗朗西斯

2 个答案:

答案 0 :(得分:1)

仅当新视图位于同一视图中时才有效。例如。当它是一个叠加对话框,由隐藏的<div>而不是普通的window.open()弹出窗口呈现。通过这种方式,bean可以相互访问,您可以执行ajax更新,而不是提交/刷新整个页面。

如果您不熟悉HTML / CSS / JS,这对于homegrow来说非常复杂。我建议查看一个提供RichFaces' <rich:popupPanel>PrimeFaces' <p:dialog>等组件的组件库。

答案 1 :(得分:0)

您可以将数据存储在会话或会话bean中。 当用户在多个标签/窗口中工作时,会话bean方法有很大的缺点 - 他只使用一个会话bean,因此他会覆盖他在其他窗口中所做的事情。

Conversation scoped bean解决了这个问题。但是谈话范围不是在JavaEE 5中,而是在CDI中(EE6的一部分)。