在JSF2项目中混合使用JSP和XHTML(Facelets) - 可能吗?

Dic*_*ood 9 jsf jsp facelets jsf-2

我有一个客户想要使用JSF2,他们喜欢XHTML现在是默认的(Facelets).

但是,他们的JSF1.x代码库中有大量的"遗留"JSP.

我知道这可能不太可取,但是有可能在JSF2中支持两者的混合,至少在他们移植的过渡期间吗?

我知道可以在JSF1.x中混合使用两者,但我在JSF2中找不到任何关于此的信息.

我用谷歌搜索过,但自然所有JSF2都集中在Facelets上.我对混音的简短尝试(我不是JSF的专家!)导致了失败.

Bal*_*usC 12

这在Facelets FAQ:使用前缀映射中得到了解答FacesServlet.然后,您可以通过http://example.com/faces/page.jsp和Facelets页面访问JSP页面,网址为http://example.com/faces/page.xhtml.这是一个相关的引用:

如何在同一个应用程序中使用Facelets和JSP?

您必须为Facelets页面使用前缀映射才能使其正常工作.保留DEFAULT_SUFFIXJSF的默认值.jsp.配置Facelet的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>
Run Code Online (Sandbox Code Playgroud)