我使用JSF 2.2& prettyfaces。 我想防止与浏览器向后功能相关的安全问题。
要恢复我的应用程序中的页面之间的导航链接: 我有一个使用Spring Security完成的登录页面,它在连接到HomePage后重定向。 HomePage位于ViewScoped中。 从这个HomePage,我可以转到ViewScoped中的AddPatientPage和SessionScoped中的AddAnalysePage。
当用户在AddP *页面上时,如果他点击浏览器后退按钮,我不想使用缓存页面。我想要一种页面的重定向/刷新。我希望主页使用初始值,因为它是第一次加载。
我正在尝试应用此solution但没有成功...例如,当我从Add * Page返回HomePage时,SelectOneMenu中的值不是最初的值,而是最后选择的值。所以我相信现金仍在使用......在测试之前,我从浏览器中清除了缓存文件。
感谢您的帮助。
作为上一篇文章中的BalusC,我不使用注释,而是直接引用web.xml中的过滤器,如上所述。
<filter>
<filter-name>noCacheFilter</filter-name>
<filter-class>com.clb.genomic.lyon.servletFilter.NoCacheFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>noCacheFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>
</filter-mapping>
*编辑:*
使用不同的单词,问题是当我使用向后按钮时,页面组件的值与其支持bean不同。所以我不明白哪些是跟踪的,哪些不在范围内。
* EDIT2:*
好的,我放下了ajax电话。 ajax调用的想法是,当您从第一个表单中选择SelectOneMenu中的值时,然后将结果注入到另一个表单中,再使用另一个SelectOneMenu和commandButton将所有值一起发送。使用向后按钮兼容性处理这是一个烂摊子。所以现在我把两个selectOneMenu放在一个没有ajax的独特形式中,它运行良好...没有问题,后退按钮和bean之间的同步和SelectOneMenu的页面值...
我希望有人明白我想做什么:)
答案 0 :(得分:2)
如果您使用的是PrettyFaces,则过滤器配置将无法按预期工作。通常,您拥有某种漂亮的URL(例如/home
),然后将其转发到真正的JSF URL(例如/home.jsf
)。
使用您发布的配置,过滤器将不会应用于转发的请求。你必须像这样更新配置:
<filter>
<filter-name>noCacheFilter</filter-name>
<filter-class>com.clb.genomic.lyon.servletFilter.NoCacheFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>noCacheFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>