问题标签 [viewexpiredexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2158 浏览

flash - 由于 ViewExpiredException,重定向后保存人脸消息的最佳方法是什么?

我按照以下文章处理 ViewExpiredException -

在 JSF2 中优雅地处理 ViewExpiredException

它做它应该做的事情。但是,如果由于 ViewExpiredException 将用户重定向到它,我希望在视图中显示一些 FacesMessage。因此,我在使用 NH.handlenaviage() 进行重定向之前添加了 FacesMessage。但它不起作用,原因是 FacesMessage 只存活了一个请求处理周期。

起初我的解决方案是将消息保存在会话中并在下一个周期的恢复视图阶段之前检索它。

尽管它有效,但我开始寻找一些标准解决方案,我遇到的第一件事是以下文章 -

通过多个页面重定向保持并传递 FacesMessages

但它没有用。我认为这是因为 PhaseListeners 在 ExceptionHandlers 之前执行。所以,在这种情况下,它是没有用的。我认为如果异常处理代码在侦听器的 afterPhase 代码之前执行会很有用。

然后我遇到了以下线程 -

在 JSF 中重定向演示后保留 FacesMessage

以下是我现在拥有的 -

它解决了这个问题,但仅适用于同一目录中的视图。

以下是我对 Flash 范围进行一些研究后得到的结果-

FacesMessage 未显示在子目录中的页面上

有人可以帮我解决这个问题吗?我正在寻找一些 JSF(如果不是标准的那么好)处理这个问题的方法。

谢谢你。

0 投票
1 回答
1640 浏览

jsf-2 - JSF 2.0 ViewExpiredException

我一直在将 JSF 1.2 与此答案中描述的 ViewHandler 一起使用:IceFaces Session Expiry 导致异常它非常有用,因为当异常发生时,页面会自动重新生成,这对公共页面很有用。问题是它与 JSF 2.0 不兼容。有人知道如何让它在 JSF 2.0 或替代品中工作吗?

编辑 :

我找到了这个解决方案:Stateless JSF,但仍然想知道是否有任何方法可以ViewHandler像我在 JSF 1.2 中所做的那样。这是我的 JSF 2.0 当前代码:

这段代码摆脱了ViewExpiredException但是当页面加载时,我似乎没有登录。

测试用例 :

  • 打开网站
  • 等待超过当前会话到期时间(从web.xml
  • 输入用户名/密码
  • 点击登录按钮
  • 登录表单为空的页面重新加载
  • 重新加载页面
  • 页面显示欢迎和登录表单未显示(预期行为)
0 投票
0 回答
472 浏览

viewexpiredexception - 升级到 JBoss AS 7 后出现 ViewExpiredException

升级到 JBoss AS 7 后,突然我们应用程序第一个登录页面的 POST 请求导致 ViewExpiredException。在 JBoss AS 6 下一切正常。

由于在 AS 7 中类加载更好,我将“server/default/lib”文件夹中的一些依赖项放入 Maven 依赖项中,以便将它们与应用程序一起部署(WAR/EJB-JAR 打包为 EAR)。我还添加了指令来更改 MANIFEST.MF 中的类路径。因此,找到了每个库。但是,JBoss 附带的模块设置为在 pom.xml中提供。我们还使用MyFaces Tomahawk库(pom.xml 依赖项是org.apache.myfaces.tomahawk.tomahawk20(版本 1.1.10)。tomahawk 库现在随应用程序一起提供,而不是之前复制到 JBoss 的某个 lib 文件夹中。

从 AS6 到 AS7 发生了什么变化,以至于这个 ViewExpiredException 立即发生?

最好的问候,塞巴斯蒂安

0 投票
2 回答
2071 浏览

iframe - 在 Safari 中使用 iframe 时 Glassfish 3.1 上的 JSF 2.0 ViewExpiredException

我有一个在 glassfish 3.1 上运行的 JSF 2.0 Web 应用程序,它在 IE、FF、Safari 和 Chrome 上运行良好。

当我在另一个网站的 iframe 中添加我的网站的 url 时,单击 iframe 中的任何按钮后,我得到 ViewExpiredException - 这仅在 Safari 上发生,在 IE、FF、Chrome 中运行良好。

以下是我的观察

  1. 在 glassfish 3.0.1 上部署了相同的应用程序,问题没有发生
  2. 如果我在没有框架的情况下打开我的网站,无论浏览器如何,它都可以正常工作
  3. 使用 JSF1.2 和 RF 3.3.3 开发了相同的应用程序,问题没有发生

根据我的理解,当在会话过期的页面上执行任何操作时,我们会得到 ViewExpiredException。但在这种特殊情况下,它发生在网站加载加载之后。

我不确定是什么原因造成的。是 Safari/JSF 2.0/GF 3.1/IFRAME?

更新: 我发现了一个有趣的问题。在我的主页上,我有 ah:commandLink 将我重定向到新页面。另外,我有一个 href 链接可以重定向到其他页面。当我单击 commandLink 时,我得到 ViewExpiredException 但是当我单击 href 链接时,我没有得到任何异常并且页面被重定向并且我可以在会话 cookie 建立时继续进行进一步的操作。

0 投票
1 回答
1087 浏览

jsf-2 - Tomcat 7.0.19 和 Mojarra 2.1.2 ViewExpiredException

很长时间以来,我一直在我的项目中使用 Tomcat 6.0.26。现在,我需要在这个项目中使用 EL 2.2,所以我将其移至 Tomcat 7.0.19,没有进行其他更改(使用 Mojarra 2.1.2-b04 和 RichFaces 4.0.0)。当我启动它时,一切都很好,直到我尝试任何 a4j:commandButton 或 h:commandButton 它都会抛出 ViewExpiredException,即使应用程序启动不到一分钟(对于信息,我在 web.xml 中强制了 30 分钟会话超时) .

使应用程序正常工作的唯一方法是更改​​此设置:

它是服务器,我将其更改为客户端,但服务器设置最好保留数据服务器端,并且不要在每次请求时将其传输到客户端。

编辑:看起来服务器客户端修复了ViewExpiredException的问题,但网站上的用户登录功能不再起作用。它登录到用户主页,但是在单击任何链接后,它的作用与用户不是记录器一样(我使用SessionScoped ManagedBean来保存用户信息)。

有人有这个bug吗?

谢谢,

亚历克斯。

0 投票
2 回答
15353 浏览

session - ViewExpiredException,页面无法恢复

我尝试关注有关如何ViewExpiredException在 GlassFish 3.1 上处理 Mojarra 2.1.0(使用 RichFaces 4)中的不同帖子。但是我定义的内容web.xml并没有产生任何效果。我使用表单基础安全性,用户必须登录才能访问内容。我只希望 Glassfish (catalina) 在会话超时时将用户重定向到一个简单的 JSF 页面,并带有一个返回登录页面的链接。

我总是收到以下错误消息;

当用户会话超时并在服务器日志中捕获异常时,我可以重定向谁?

问候,克里斯。

布局.xhtml

web.xml

登录.xhtml

最后是 sessionExpire.xhtml

0 投票
1 回答
7880 浏览

jsf - 根据当前视图处理 ViewExpiredException

我在我的项目中使用 JSF 2.0 和 Primefaces。

我有两个 xhtml 页面,即 Cars.xhtml 和 Bikes.xhtml。

我正在使用 ViewScoped 支持 bean。

目前,如果从两个页面中的任何一个页面获取视图过期异常,我会在 web.xml 中处理它。通过错误页面标签并指向welcome.xhtml。

现在,如果我从 Bikes.xhtml 获得 viewexpired 异常,我需要定向到另一个页面,即 BikesHome.xhtml 而不是welcome.xhtml。

如果异常来自 Cars.xhtml,则应显示welcome.xhtml。

请帮我怎么做。

0 投票
2 回答
1469 浏览

java - jsf页面无法恢复

当我单击selectBooleanCheckBox. 我应该怎么办?

0 投票
2 回答
24033 浏览

session - 检查会话是否存在 JSF

我有一个登录页面,其中有一个用户 bean 来验证一个人的用户名和密码。这个 Bean 是 Session Scoped 的。如果有人写了一个 URL 并试图跳转登录页面,我该如何检查并将他重定向到登录页面?

另一方面。假设我已经登录并且正在工作,突然我出去了一会儿,我的会话到期了。当我返回并尝试与表单交互时,它会发送一条消息,提醒我会话到期。发生这种情况时,如何再次重定向到登录表单?

提前致谢。希望我自己解释一下。

Mojarra 2.1.4、Tomcat 7、战斧 1.1.11

0 投票
1 回答
1289 浏览

url - 捕获 ViewExpiredException 时 JSF 错误重定向

所以我有一个 ViewExpiredException 处理程序并且工作正常。现在,当我启动网络应用程序时,我的 URL 看起来像这样www.myApp.com/TestFaces/,它显示了第一页,即登录页面。如果出于某种原因我在登录时离开页面,并且视图过期,则应用程序会捕获 ViewExpiredException 并将我发送到“ViewExpired”页面但 URL 保持不变www.myApp.com/TestFaces/。在那个“ViewExpired”页面上,我有一个commandLink返回登录页面,在值属性中我放了“index.xhtml”,但它没有将我发送到登录页面,因为没有页面www.myApp.com/TestFaces/index.xhtml但在www.myApp.com/TestFaces/faces/index.xhtml

所以问题是:

  1. 如果我在登录页面,为什么会收到 ViewExpiredException?是因为ajax吗?
  2. 如何或在哪里可以使 commandLink 真正将我发送到 index.xhtml?

仅当登录页面中的视图过期时才会发生这种情况,在我的应用程序的其他页面中,它的效果非常好。

提前致谢 !