在JSF页面之间传输Java对象

时间:2015-08-28 11:25:16

标签: jsf jsf-2.2

我尝试在JSF中实现flash。如果我必须在一个会话中的页面之间传输Java对象,它的工作正常。但我有一个需要解决的空间案例。

我有一个提交表单,用户输入个人数据。然后他打开第二页,用于打开支付网关(paypal)页面。付款时,Paypal会将用户重定向回新网页中的网站。

我需要一些方法在第一页和最后一页之间传输Java对象数据。有什么解决方案吗? 我正在使用带有Tomcat 8的JSF 2.2.6。

2 个答案:

答案 0 :(得分:1)

我无法将其标记为重复...因此仅限链接答案:Integrate Paypal in Web Application using Java

并在RETURNURL请求参数中对您的参数进行编码...

答案 1 :(得分:1)

我想Paypal重定向到您的网站会创建一个新会话,如果是这种情况,您只需创建一个DTO对象并使用序列化Java Serializable Object to Byte Array

将其存储到具有会话ID的BD中

但是如果paypal在同一个会话上调用,那么你所要做的就是从会话中获取对象

FacesContext facesContext = getFaceContext();
Application app = facesContext.getApplication();
ExpressionFactory elFactory = app.getExpressionFactory();
ELContext elContext = facesContext.getELContext();
ExternalContext externalContext = facesContext.getExternalContext();
HttpSession session = (HttpSession) externalContext.getSession(true);
session.setMaxInactiveInterval(-1);
ValueExpression valueExp = elFactory.createValueExpression(elContext, expression, Object.class);
YourBean yourBean = (YourBean) valueExp.getValue("#{yourBean}");

这个bean的范围必须是@SessionScoped