Я новичок в JSF и Spring Framework и пытаюсь понять, как заставить их работать вместе.
Моя текущая проблема заключается в том, что приложение выводит мои файлы JSF без их интерпретации.
Вот некоторые фрагменты моего кода, которые, я считаю, могут быть уместны:
диспетчер-servlet.xml
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="login.htm">loginController</prop>
</props>
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/pages/"
p:suffix=".xhtml" />
<bean name="loginController" class="controller.LoginController" />
LoginController
public class LoginController extends MultiActionController {
public ModelAndView login(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println("LOGIN");
return new ModelAndView("login");
}
WEB-INF / страницы / login.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>#{message.log}</title>
</h:head>
<h:body>
<h:form>
<h:outputLabel value="#{message.username}" for="userName">
<h:inputText id="userName" value="#{User.name}" />
</h:outputLabel>
<h:commandButton value="#{message.loggin}" action="#{User.login}" />
</h:form>
</h:body>
</html>
Есть идеи, где может быть проблема? Этот код имеет какой-либо смысл вообще? Я хорошо осознаю тот факт, что это, вероятно, полностью отстой, и я буду рад здесь, ПОЧЕМУ это отстой и как сделать это лучше. Спасибо:)
РЕДАКТИРОВАТЬ: я добавляю кусок кода, который, кажется, корень проблемы, и который я (конечно) не включил в исходный вопрос:
web.xml
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
URL-шаблон сервлета Faces должен был быть изменен на * .xhtml для правильной работы.