我尝试在JSF中实现flash。如果我必须在一个会话中的页面之间传输Java对象,它的工作正常。但我有一个需要解决的空间案例。
我有一个提交表单,用户输入个人数据。然后他打开第二页,用于打开支付网关(paypal)页面。付款时,Paypal会将用户重定向回新网页中的网站。
我需要一些方法在第一页和最后一页之间传输Java对象数据。有什么解决方案吗? 我正在使用带有Tomcat 8的JSF 2.2.6。
答案 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