Я нашел это Смешивание JSP и XHTML (Facelets) в проекте JSF2 - возможно? , когда я искал способ использовать .jsp и .xhtml вместе.
На этот вопрос отвечает ссылка на FAQ, в которой говорится, что я должен использовать префиксное сопоставление, но не могу понять, как. Я понимаю, что должен добавить facelets.VIEW_MAPPINGS, но я не могу понять формулировку "Вы должны использовать префиксное сопоставление".
В основном я должен получить доступ к моей странице с / лиц / включенным, как: "http://localhost:8080/webapp/faces/mypage.xhtml"
Но если я попытаюсь добавить / Faces / вручную, то получится 404. И я не уверен, следует ли добавлять его автоматически при запуске приложения.
Мой файл приветствия представляет собой HTML-страницу, которая использует: <body bgcolor="#FFFFFF" onload="window.location='/portal/login/login.xhtml'">
Должно ли это быть .xhtml, а не .jsf?
Прежде чем пытаться смешаться со страницами JSP и только пробовать JSF2, я успешно запустил его так:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Вместо этого использование / Faces / * кажется обязательным, но я просто не понимаю, как правильно его использовать.
Я пытаюсь это так:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<!-- Use extensions mapping for Faces servlet -->
<context-param>
<param-name>facelets.VIEW_MAPPINGS</param-name>
<param-value>*.xhtml</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.jsp</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Это касается большого приложения, созданного на чистых страницах jsp и страницах jsp с JSF 1.2. По сути, я конвертирую все страницы JSF в JSF2 и, следовательно, XHTML.