我在Java Web Dynpro应用程序中有两个视图,我想在它们之间共享一个变量,以便当在StartView中提交字符串时,我可以在ResultView中显示它。我有点困惑的Map是如何工作的。
我在组件上下文like this和this中创建了一个名为Username
的value attribute
。然后我在StartView和Component Controller之间创建了一个数据链接。我将Username属性从右侧(组件所在的位置)拖到StartView上下文中。结果为like this.
这就是我被困住的地方我不知道如何从组件到ResultView引用这个用户名属性。显然,我需要在两者之间创建一个数据链接,但然后呢?
- 我是否在ResultView上下文上创建一个新的值属性[这样][4]。
- 还是再次将Username属性从组件上下文拖到ResultView上下文the same way as I did for the StartView。
基本上我想让这段代码工作:
String headerText = wdThis.wdGetWelcomeComponentController().
wdGetContext().currentContextElement().getUsername();
wdContext.currentContextElement().setHeaderText(headerText);
// headerText is the name of the attribute that I want to create in the ResultView
2条答案
按热度按时间s4n0splo1#
创建一个从username属性(在组件控制器中)到headertext属性(在结果视图中)的Map。通常对此不需要编码。
dzjeubhm2#
正如你的图片所示,你的上下文是在控制器中,这是webdynpro的典型方式,你定义了当你拖动属性到视图。您可以通过箭头确认,并在视图的属性中选择属性,您将看到这是一个WelcomeComponent属性。
您可以在新视图中创建一个新属性,然后连接两个属性,或者只是将属性从控制器拖到视图中以创建一个新属性。最后的结果将是相同的,所以我建议你直接创建它的思想控制器,它得到了更少的步骤。
如果你选择创建一个新的,当你将加入两个属性(控制器和视图)webdynpro将迫使你有一个控制器查看关系,你不能让它反转,基于MVC模式webdynpro实现。
例如,如果你在view上有一个ant int属性,在controller上有一个string属性,当你建立关系时,controller属性将保持不变,而view将变为string,通过属性定义是controller属性。