我有一个想要使用JSF2的客户端,他们喜欢XHTML现在是默认的(Facelets)。
但是,他们的JSF1.x代码库中有大量的“遗留” JSP。
我知道这可能不是很理想,但是否有可能在JSF2中同时支持这两者,至少在移植期间的过渡期内?
我知道可以在JSF1.x中将两者混合使用,但是我在JSF2中找不到关于此的任何信息。
我努力地搜索过,但自然而然,所有JSF2的关注点都集中在Facelets上。同样,我短暂的混合尝试(我不是JSF专家!)也导致了失败。
在Facelets常见问题解答中对此进行了回答:在上使用前缀映射FacesServlet。然后,您可以访问JSP页面http://example.com/faces/page.jsp通过和Facelets页http://example.com/faces/page.xhtml。这里是相关的:
FacesServlet
## 如何在同一应用程序中使用Facelets和JSP?
您必须为Facelets页面使用前缀映射,才能使其工作。DEFAULT_SUFFIX将JSF的默认值保留为.jsp。配置Facelet的VIEW_MAPPINGS参数:
DEFAULT_SUFFIX
.jsp
VIEW_MAPPINGS
<web-app> <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.jsp</param-value> </context-param> <!-- Facelets pages will use the .xhtml extension --> <context-param> <param-name>facelets.VIEW_MAPPINGS</param-name> <param-value>*.xhtml</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> </servlet> <!-- Use prefix mapping for Facelets pages, e.g. http://localhost:8080/webapp/faces/mypage.xhtml --> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> </web-app>