Я пытаюсь выполнить приложение Spring MVC, которое использует функцию темы Spring MVC. Я следую этому примеру https://www.youtube.com/watch?v=OiQql85qsos Но как-то он не работает, вот структура проекта в STSSpring MVC Темы Не работает
Я просто есть HomeController
@Controller
public class HomeController {
@RequestMapping("/")
public String getHomePage(){
return "home";
}
}
Вот web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>SpringMVCThemes</display-name>
<servlet>
<servlet-name>config</servlet-name>
<servlet- class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>config</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Ниже приведен config-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
<mvc:annotation-driven></mvc:annotation-driven>
<context:component-scan base-package="co.edureka.controllers"/>
<mvc:resources mapping="/resources/**" location="/resources/*" />
<mvc:resources mapping="/images/**" location="/resources/images/" />
<mvc:resources mapping="/css/**" location="/resources/css/" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="themeSource"
class="org.springframework.ui.context.support.ResourceBundleThemeSource">
<property name="basenamePrefix" value="META-INF.theme-" />
</bean>
<bean id="themeChangeInterceptor"
class="org.springframework.web.servlet.theme.ThemeChangeInterceptor">
<property name="paramName" value="theme" />
</bean>
<bean id="themeResolver"
class="org.springframework.web.servlet.theme.CookieThemeResolver">
<property name="defaultThemeName" value="default" />
</bean>
<mvc:interceptors>
<ref bean="themeChangeInterceptor"/>
</mvc:interceptors>
</beans>
Вот содержание theme-black.properties (под WebContent/META-INF)
css=resources/css/theme-black.css
Ниже содержание темы-black.css (под WebContent/ресурсов/CSS)
body {
background-color: #DBF5FF;
color: #007AAB;
}
Вот home.jsp, но при нажатии на другие темы связать это не меняет темы
Я проверил печенье, есть печенье с именем org.springframework.web.servlet.theme.CookieThemeResolver.THEME
Как заставить его работать?
Ваша конфигурация не так ... Удалите 'DefaultAnnotationHandlerMapping' и использовать' 'зарегистрировать перехватчики. –
@ M.Deinum благодарит за это Теперь я могу видеть файл org.springframework.web.servlet.theme.CookieThemeResolver.THEME cookie в браузере, но при этом он не принимает темы. –
Я действительно не получаю вашу структуру приложения, вы, по-видимому, что-то делаете с maven, но структура основана на eclipse? Если вы используете maven, файл свойств находится в неправильном расположении и должен находиться в 'src/main/resources', если вы не используете maven, он может находиться в любом каталоге. У вас есть тег ' ' в вашем tsp? –