我已经使用 Eclipse Indigo 和 Tomcat 7.0.32创建了一个 JSF 2.0 应用程序,如Eclipse 文档中所示。
在这个应用程序中,我有两个页面:
- 登录.xhtml
- 欢迎.xhtml
从login.xhtml
我导航到welcome.xhtml
。
我已经login.xhtml
在我的web.xml
.
<welcome-file-list>
<welcome-file>login.xhtml</welcome-file>
</welcome-file-list>
并将 for 定义url-pattern
为Faces Servlet
:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
现在我有两个问题:
- 当我访问 URL 时,
http://localhost:8080/LibraryInformationSystem/
我可以看到登录页面,但登录后,当我导航到 welcome.xhtml 时,URL 变为http://localhost:8080/LibraryInformationSystem/login.xhtml
nothttp://localhost:8080/LibraryInformationSystem/welcome.xhtml
;但如果我手动浏览http://localhost:8080/LibraryInformationSystem/welcome.xhtml
,它也会显示相同的内容。我的问题是为什么 URL 没有改变?这是定义默认页面的正确方法吗?我从另外两个 SO 线程中找到了信息,第一个在这里,第二个在这里。 - 第二个问题是,当我从 Eclipse 运行应用程序并将应用程序启动到其内部浏览器时,我可以看到登录页面,但是如果我关闭从 Eclipse 运行的服务器并从批处理文件启动运行 Tomcat。 bat 位于 bin 文件夹中,并将应用程序导出为 war 文件并将其部署到 webapps 文件夹中,有时我可以看到登录页面,有时我会看到来自 Firefox 或 Chrome 的 Tomcat 的 HTTP 错误 - 404 页面。如果我关闭 startup.bat 并从 webapps 文件夹中删除 myapplication.war 和 myapplication 文件夹,然后再次从 startup.bat 启动服务器并再次从 Eclipse 导出 war 我可以看到登录页面,在这种情况下没有 404 错误. 为什么会这样?
任何指针都会对我很有帮助。