可以使用PrettyFaces等基于过滤器的 servlet 扩展来实现这一点。
它使用简单,有很好的文档和示例,但为了说明您的案例,您可以执行以下操作:
- 下载 prettyfaces.jar 并添加到您的类路径中。通常是
/WEB-INF/lib
文件夹。
- 将包含 URL 映射的 pretty-config.xml 文件添加到该
/WEB-INF
文件夹。
pretty-config.xml 文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<pretty-config xmlns="http://ocpsoft.com/prettyfaces/3.3.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ocpsoft.com/prettyfaces/3.3.3 http://ocpsoft.com/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.3.xsd">
<url-mapping id="home">
<pattern value="/home" />
<view-id value="/home.xhtml" />
</url-mapping>
</pretty-config>
要从控制器重定向到此映射,您应该使用pretty:
+之类的字符串url-mapping-id
。
控制器 bean 示例:
@ManagedBean
@ViewScoped
public class HomeBean
{
public String goHome()
{
return "pretty:home";
}
}
而已。每当您发出请求时,如果 PrettyFaces 过滤器找到 url 映射模式/home
,它将显示视图 id home.xhtml
,但将 URL 保留为/home
. 漂亮的。
另外,作为建议,welcome-file-list
您只能添加index.html
.
web.xml 欢迎文件列表标签示例:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
并将这样的 index.html 文件添加到您的应用程序根文件夹中。
index.html 文件示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My Application</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="0;url=/myapplication/home" />
</head>
<body>
<h3>Loading...</h3>
</body>
</html>
通过这样做,每当有人请求您的应用程序时,它将获得一个快速加载页面,并将被重定向到/home
.
我希望它有所帮助。