如何将数据从一个网页传递到不同项目中的另一个网页(JSF 1.1 - ADF 10.1.3)



我在两个不同的项目中有两个页面(这意味着在不同的ear文件中奇异地部署),我需要将数据从一个页面传递到另一个页面。

在命令链接的动作中,我做

public String onSalva() {
     ADFContext.getCurrent().getApplicationScope().put("comingFrom", md);
     return "goToPrint";
}

,在另一个页面的后台bean的构造函数方法中,我做:

page = (String)ADFContext.getCurrent().getApplicationScope().get("comingFrom");

但是page总是空的。我尝试使用进程,会话和请求范围,但没有运气。是否有一种方法,我可以重定向到另一个页面通过手动指定参数?就像

   return "goToPrint?pageFrom="+md;
}

当您说"不同的EAR"时,这意味着两个应用程序彼此隔离,并且没有简单的方法可以通过Java从一个应用程序获取数据到另一个应用程序。

相反,您必须使用HTTP协议。如果你只是想去一个URL,使用HttpServletResponse.sendRedirect()

这将在浏览器中打开新页面,就好像用户在位置栏中输入了URL一样。浏览器将不再与你的第一个应用程序对话

如果你想留在你的第一个应用程序,只是发送一些数据到另一边,有几种方法:你可以嵌入另一个应用程序与iframe -这将不允许你交换数据,但用户可以填写和提交一个表单,例如。

或者您可以使用像HttpClient这样的库来与其他应用程序通信。这将允许你发送POST请求,并做所有web浏览器可以对其他应用程序做的事情。

最后,您可以定义一个两个ear都使用的共享企业bean。一种方法是定义两个应用程序都订阅的消息服务。第一个创建消息并将它们放入队列,第二个等待消息并对其进行处理。

相关内容

最新更新