4

我的网站使用 JSF,网址似乎是http://mysitename.com/wompower6/faces/home.xhtml

我正在使用 prettyfaces,所以如果我在 pretty-config.xml 中使用以下内容,我可以将名称更改http://mysitename.com/wompower6/home

<url-mapping id="home">
    <pattern value="/home" />
    <view-id value="/faces/home.xhtml" />
</url-mapping>

我的问题是

  1. 如何删除应用程序名称 wompower6 ,使 url 变为 mysitename.com/home ?

  2. 在我的 web.xml 中,我有 <welcome-file>home.xhtml</welcome-file>,但这似乎不起作用。当我键入 mysitename.com 时,它没有映射到 home.xhtml。这里有什么线索吗?

4

1 回答 1

11

如何删除应用程序名称 wompower6 ,使 url 变为 mysitename.com/home?

这是一个 webapp<Context>设置,配置取决于使用的 servletcontainer。例如,如果您使用的是 Tomcat,那么基本上有 2 个选项可以让您的 webapp 成为 root webapp。

  1. 将 WAR 文件重命名为ROOT.warTomcat 将默认将其部署在上下文根目录中。

  2. 将元素 in (或,取决于您要定义它的位置)的属性设置为空字符串path。例如<Context>Webapp/META-INF/context.xmlTomcat/conf/server.xml

    <Context path="" ...>
    

其他容器支持类似的结构。有关详细信息,请参阅他们的文档。如果您使用的是 Eclipse 之类的 IDE,那么您还可以在项目属性的Web Project Settings属性中进行设置(右键单击项目并选择Properties)。将上下文根值设置为 just /


在我的 web.xml 中,我有 home.xhtml,但这似乎不起作用。当我键入 mysitename.com 时,它没有映射到 home.xhtml。这里有什么线索吗?

我假设你在谈论<welcome-file>设置。这必须指向物理上存在的文件,而不是虚拟 URL,例如/faces/*. 基本上有两种方法可以克服这个问题:

  1. 提供一个物理存在的 /faces/home.xhtml文件(它甚至可以留空)。

  2. 将映射中丑陋的/faces/*URL 模式替换为,这样它就会在每次请求 XHTML 文件时启动。FacesServletweb.xml*.xhtml

    <url-pattern>*.xhtml</url-pattern>
    

    这样您就不需要摆弄/faces/*URL 模式。

于 2011-07-01T11:19:46.937 回答