如何在 2.0 中隐藏 JSF 导航处理程序的 URL 访问
我有一个 Web 应用程序,其中有 tomcat 6.0 和 JSF 2.0 以及 richfaces 4.0.0 Final。
我的所有页面都带有扩展名 xhtml
。
faces-config.xml
中的所有导航也都带有 .xhtml
扩展名。
目前,浏览器显示带有 FacesServlet 导航到的文件的 .xhtml
扩展名的整个 url。
我只想显示所有导航的基本 URL,例如 localhost:8080/appname。
这可能吗?
I have a web application which has tomcat 6.0 and JSF 2.0 with richfaces 4.0.0 Final.
All my pages are with extension xhtml
.
All my navigations in the faces-config.xml
is also with .xhtml
extensions.
Currently the browser shows the whole url with the .xhtml
extension of the file that the FacesServlet navigates to.
I would like to show only the base URL like localhost:8080/appname
for all navigations.
Is this possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,如果您将所有静态内容(例如图像、样式表、javascript 等)放在固定的公共文件夹中,例如
/static
、/resources
、/assets
等,如果您将FacesServlet
本身映射到*.xhtml
的 URL 模式上。然后,您可以创建一个映射到
/*
URL 模式的Filter
,并透明地继续所有静态内容的请求/响应链,并将剩余内容分派到>FacesServlet
。这对于导航处理程序来说是不可能的,因为它必须在 faces 上下文中执行,而该上下文仅在 faces servlet 运行时才可用。
Yes, it is possible if you put all static content such as images, stylesheets, javascripts and so on in a fixed common folder such as
/static
,/resources
,/assets
, etc and if you map theFacesServlet
itself on an URL pattern of*.xhtml
.Then you can create a
Filter
which is mapped on an URL pattern of/*
and transparently continues the request/response chain for all static content and dispatches the remnant to theFacesServlet
.This is not possible with a navigation handler as it has to be executed in the faces context which is only available if the faces servlet has run.