问题标签 [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.
jsf - 如何解决 JSF 1.2 中的 ViewExpiredException
我有一个使用 JSF1.2 + Richfaces 3.3.3 Final、MyFaces 1.2.7、Spring + Hibernate 的应用程序,每次清除浏览器的缓存和 cookie 并再次登录到我的应用程序时,都会出现以下异常。
javax.faces.application.ViewExpiredException - /app/project/index.jsf
找不到视图标识符的保存视图状态:/app/project/index.jsf
谁能让我知道如何解决上述异常?
java - 在 portlet 中的同一视图上调用多个 ajax 请求会导致 ViewExpiredException
我正在使用 JSF 和 Ajax 构建 Portal 应用程序。所有页面代码都在请求范围内。我们有一个包含 2 个 portlet 的页面,在其中一个 portlet 中我们使用 ajax 来重新呈现组件。
当我们进行这样的重新渲染时,我们可以修改它 3 次,当我们提交表单时,它会被提交,但是如果我们重新渲染超过 3 次,并且当我们尝试提交它时,会出现视图过期异常,并且页面会重新加载并清除所有值向上。
目前 web.xml 中没有逻辑视图数量的条目。所以我猜它默认为 15。如果我有一个条目并将值设置为 30,我可以重新渲染大约 10 次,但不止于此,它会给出视图过期异常。(这可能会占用大量内存)
您能否让我知道如何通过最佳利用视图来解决这个问题,并找出每个 portlet 正在使用多少视图?堆栈跟踪 :
jsf - JSF - 每页设置 STATE_SAVING_METHOD
我想将特定页面(不需要用户登录即可使用)设置为具有STATE_SAVING_METHOD
ofclient
而不是server
其余页面使用server
. 有没有办法在每页的基础上设置它?
我想这样做是为了避开可怕的ViewExpiredException
。
jsf - 使会话无限期保持活动状态
有没有办法在不向客户端发送状态的情况下保持页面会话处于活动状态?我无法将 设置STATE_SAVING_METHOD
为client
,我不想使用a4j:keepalive
.
我尝试使用一个简单的隐藏 iframe 提交给有问题的 Bean,但它使主页无效。
我正在使用 JSF 1.2 和 myfaces。
这是为了绕过不需要用户登录的页面上的 ViewExpiredException。大多数现有站点都需要用户登录。
internet-explorer - 仅在 IE 中发生异常
我在 JSF 2 中开发了一个网站。但是,如果我尝试在 Google Chrome 中做同样的事情,那么一页“陈列室”在 Internet Explorer 中会出现异常,一切运行正常。关于这个例外,我不能多说,因为我真的对此一无所知。这就是我向你们展示的。
当我点击“Lâmpada”(在英语中的意思是灯)时会发生异常。在这里,您可以远程打开/关闭灯。正如我所说的一切正常,整个网站,甚至在 IE 中。只是页面“陈列室”给出了这个错误。
编辑:
我的showroom.xhtml
页面:
该小程序仅用于流式传输我的网络摄像头,我使用 Yawcam。
豆子:
和socket
班级:
这就是我的应用程序工作所需的全部内容。知道为什么会这样吗?
ajax - PrimeFaces 3.0 + Mojarra 2.1.6 javascript ajax 包 jsf.ajax.* 不可用 - ViewExpiredException
我试图调查这个问题,但根本没有找到解决方案。我使用带有分页的 primefaces 数据表。正如 Ed Burns 在他的博客中所建议的那样,我为 viewexpiredexception 错误编写了异常处理程序,但是当与 ajax 提交(例如数据表页面导航)结合使用时,不会处理 vee 上的页面重定向。我在这里使用了 BalusC 建议的解决方案JSF 状态栏/连接状态信息,但 chrome 说它缺少 jsf.ajax.* javascript 命名空间。该页面在tomcat 7.0.22上运行,启动时没有错误/警告,后端基于spring和mybatis。这是 web.xml
这是 faces-config.xml
这是 index.xhtml 页面:
我已经为测试提供了超出需要的内容。alert("1") 和 "2" 不显示,并且 jsf.ajax.add... 在浏览器中引发错误。如果我在 chrome 中查看并生成页面,我看不到任何包含捆绑到 mojarra 包中的 jsf.js。缺陷在哪里?
感谢任何人,对长度感到抱歉!
java - 单击运行清除表单的 JS 功能的按钮后无法恢复视图
我的表格有问题。该表单允许用户在一些文本框中输入信息,然后有 2 个按钮 - 搜索和重置。
表格代码:
我遇到的问题是,如果我单击搜索按钮,它会将我带到结果页面,如果我返回搜索页面,它仍然具有我在文本字段中搜索的数据,因为 bean 是会话范围。我希望能够单击重置按钮并清除文本字段中的数据。
目前使用下面的代码,如果我点击重置按钮,搜索按钮不再起作用,并且在萤火虫控制台中它给了我这个错误
如果我onclick="clearForm(this.form);"
从第二个中删除p:commandButton
,表格可以正常工作。
任何想法为什么调用 JS 函数会使视图过期?
发布 Bean:
jsf - jsf spring安全会话超时viewExpiredException
我在使用 JSF 的 Spring Security 中的超时存在以下问题:
我已经自定义了会话管理过滤器,以便只要请求的页面是安全的(即,如果它只允许经过身份验证的用户),用户就会被重定向到 invalidSessionUrl。我放入 Spring Security 提供的会话管理过滤器的自定义代码是:
方法“UtilSpringSecurity.extraerPagina(request)”以这种方式返回请求的页面:
如果参数是需要对用户进行身份验证的页面,则方法“UtilSpringSecurity.paginaAutenticada(pagSolicitada)”返回true(我使用IF进行检查,考虑到我的xml安全配置文件的intercept-url元素具有属性access="isAuthenticated()"
):
这个解决方案有效,但它只有一个问题:
如果我让浏览器在页面上保持空闲直到会话超时到期,然后我请求同一页面,那么我会得到一个“viewExpiredException”。这是因为过滤器运行良好,它绕过了对 invalidSessionUrl 的重定向,但是由于会话无论如何都过期了,然后我得到那个异常,试图重新呈现同一页面。
如果我在会话超时到期时请求任何其他不安全的页面,它运行良好,它会正确重定向到页面并且我没有收到 viewExpiredException。
任何人都知道如何解决这个问题?
先感谢您。
jsf - jsf viewexpiredexception面临重定向不起作用
我有一个过滤器,如果会话已过期并且方法是 POST,则将 faces-redirect 参数添加到 url 并使浏览器不缓存页面,以避免 viewExpiredException,但不起作用,我仍然得到那个例外。
这是我的代码:
“anadirFacesRedirect”方法添加了“faces-redirect=true”。它工作正常,我已经调试并查看了日志,并且 sendRedirect 参数没问题。
我将此代码放在 Spring Security 过滤器中。
我不知道这是否是问题(因为 Spring Security),或者代码中是否有问题?
谢谢你。
更新: 我已经检查过这不是 Spring Security 问题,因为我已经将它放在了在 Spring Security 的过滤器链之后执行的 webfilter 中,但它仍然不起作用,它会抛出 viewExpiredException。
为什么是这样?我已经强制重定向并使浏览器不使用缓存页面。
jsf - 由于 ViewExpiredException,注销后需要登录两次
我在 Websphere Process Server 上有一个 JSF 页面(在 WAS 7 之上),它有 ViewExpiredException。发生这种情况时,我希望用户注销然后重新登录,我已经在 web.xml 中的这个异常上设置了重定向到以下注销页面:
然后重定向到登录页面:
当您登录时,您将被重定向到首先导致异常的页面。除了实际发生的是再次抛出异常,然后我们回到登录页面。
所以你必须登录两次。
不知道该怎么做或从哪里开始寻找。任何帮助,将不胜感激。我已经查看了有关此问题的现有问题,但无法解决。
编辑:我忘记提到如果触发异常的操作是刷新,这工作正常,但如果该操作单击命令栏,则失败(必须登录两次)。