- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 JSF 应用程序中,我们有目录层次结构:
webapp
xhtml
login.xhtml
main.xhtml
search.xhtml
css
main.css
extra.css
js
jquery.js
等等。 Servlet 映射为:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
这工作正常,但我们的网络应用程序的 URL 如下所示:
http://localhost/myapp/xhtml/login.xhtml
http://localhost/myapp/xhtml/search.xhtml
我们希望通过删除 /xhtml
来获得更简单的 URL部分,即 http://localhost/myapp/login.xhtml
我找不到任何方法来完成此任务。有没有办法在 <servlet-mapping>
中做到这一点?我需要一些额外的框架吗?
最佳答案
您可以使用Filter
来做到这一点。要么是本土的,要么是第三方的,比如 URLRewriteFilter 。只需将其映射到 *.xhtml
然后转发至/xhtml/*
.
类似于:
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String ctx = request.getContextPath();
String uri = request.getRequestURI();
String viewId = uri.substring(ctx.length(), uri.length());
if (viewId.startsWith("/xhtml")) {
// Redirect to URL without /xhtml (changes URL in browser address bar).
response.setStatus(301);
response.setHeader("Location", ctx + viewId.substring("/xhtml".length());
// Don't use response.sendRedirect() as it does a temporary redirect (302).
} else {
// Forward to the real location (doesn't change URL in browser address bar).
request.getRequestDispatcher("/xhtml" + viewId).forward(request, response);
}
但更简单的方法是更改目录层次结构以摆脱 /xhtml
子文件夹。这些 CSS/JS(和图像)文件最好放置在 /resources
中。子文件夹,以便您可以利用 <h:outputStylesheet>
的功能, <h:outputScript>
和<h:graphicImage>
以适当的方式。
关于java - 在 JSF 中,我可以在 URL 中隐藏 XHTML 文件的部分目录层次结构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8589051/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!