[英]How to declare default .xhtml page in JSF2.0
我已经使用Eclipse Indigo和Tomcat 7.0.32创建了一个JSF 2.0应用程序,如Eclipse文档中所示。
在此应用程序中,我有两个页面:
从login.xhtml
我导航到welcome.xhtml
。
我已经在我的web.xml
login.xhtml
声明为欢迎页面。
<welcome-file-list>
<welcome-file>login.xhtml</welcome-file>
</welcome-file-list>
并且还将Faces Servlet
的url-pattern
定义为:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
现在我有两个问题:
http://localhost:8080/LibraryInformationSystem/
我可以看到登录页面,但是登录后,当我导航到welcome.xhtml时,URL更改为http://localhost:8080/LibraryInformationSystem/login.xhtml
不是http://localhost:8080/LibraryInformationSystem/welcome.xhtml
; 但是,如果我手动浏览http://localhost:8080/LibraryInformationSystem/welcome.xhtml
,它也会显示相同的内容。 我的问题是为什么URL不变? 这是定义默认页面的正确方法吗? 我从另外两个SO线程中找到了信息,第一个在这里 ,第二个在这里 。 任何指针对我都会非常有帮助。
关于第1点,JSF破坏了HTTP语义。 它应该使用GET提供http://localhost:8080/LibraryInformationSystem/welcome.xhtml
,但是JSF使用POST,因此URL不会更改。 您可以执行Post-Redirect-Get
来更新URL,但是默认情况下,JSF的工作方式不是这样。
关于第2点,您应该避免在同一个SO问题中提出两个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.