我正在编写一个JSF网络应用程序,它使用youtube的数据API通过网站查看/上传YouTube视频。使用此API的一部分是当用户上传视频时,会使用重定向参数将帖子发送到youtube,以便在上传完成后将用户发送回我的网站。当用户在站点内时,我的会话bean工作正常,但是一旦他们发布到youtube并重定向回来,他们的所有值都会丢失。这是一个问题,因为会话丢失后,它们会被有效注销,无法重定向回管理页面。我注意到在服务器监视器中发布后会话ID发生变化,所以我认为这是问题,但我不知道如何确保他们的会话通过帖子和重定向保持不变。有没有人有什么建议?我已经尝试将状态保存方法更改为客户端和服务器。我是JSF的新手,不知道还有什么可以尝试。
会话bean使用@ManagedBean和@SessionScoped
以下是上传表单的代码,如果这有帮助,则uploadUrl是youtube url + redirect参数。
<form action="#{adminbean.uploadUrl}" method ="post" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="hidden" name="token" value="#{adminbean.token.token}"/>
<h:commandButton id ="addMatch" type="submit" value="Upload Match" />
</form>
任何帮助将不胜感激!
答案 0 :(得分:0)
我认为我之前有同样的问题,但仅限于GoogleApp Engine服务(在生产服务器上,而不是在开发环境中)。
问题可能是服务器在重定向之前没有保存当前的bean状态。这可能会导致非常讨厌的重定向循环。
尝试根据这篇文章创建和注册阶段监听器: 的 https://stackoverflow.com/a/19297154/2068284 强>
这对我有用。