Tôi đã tạo 'cho bây giờ' một ứng dụng web mùa xuân đơn giản và cơ bản. Tôi đã từng có một bộ mô tả triển khai như là một tệp tin web.xml đơn giản, và sau đó là một bối cảnh ứng dụng như một tệp xml.Cách sử dụng thẻ <mvc: resources> của Spring MVC trong ngữ cảnh ứng dụng java?
Mặc dù, bây giờ tôi muốn cố gắng tạo toàn bộ ứng dụng web mùa xuân bằng cách chỉ sử dụng các tệp java. Vì vậy tôi đã tạo WebApplicationInitializer của tôi thay vì bộ mô tả triển khai bình thường và ngữ cảnh ứng dụng của tôi sử dụng chú thích @Configuration.
Deployment Descriptor
package dk.chakula.config;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
/**
*
* @author martin
* @since 12-1-2012
* @version 1.0
*/
public class Initializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext)
throws ServletException {
registerDispatcherServlet(servletContext);
}
private void registerDispatcherServlet(final ServletContext servletContext) {
WebApplicationContext dispatcherContext = createContext(ChakulaWebConfigurationContext.class);
DispatcherServlet dispatcherServlet = new DispatcherServlet(dispatcherContext);
Dynamic dispatcher = servletContext.addServlet("dispatcher", dispatcherServlet);
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
private WebApplicationContext createContext(final Class<?>... annotatedClasses) {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(annotatedClasses);
return context;
}
} //End of class Initializer
bối cảnh ứng dụng
package dk.chakula.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
import org.springframework.web.servlet.view.tiles2.TilesConfigurer;
import org.springframework.web.servlet.view.tiles2.TilesView;
/**
*
* @author martin
* @since 12-01-2013
* @version 1.0
*/
@Configuration
@EnableWebMvc
@ComponentScan("dk.chakula.web")
public class ChakulaWebConfigurationContext {
@Bean
public TilesConfigurer setupTilesConfigurer() {
TilesConfigurer configurer = new TilesConfigurer();
String[] definitions = {"/layout/layout.xml"};
configurer.setDefinitions(definitions);
return configurer;
}
@Bean
public UrlBasedViewResolver setupTilesViewResolver() {
UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
viewResolver.setViewClass(TilesView.class);
return viewResolver;
}
} //End of class ChakulaWebConfigurationContext
Vấn đề của tôi là tôi dường như không thể tìm thấy một cách 'cô lập' lập bản đồ của tôi vào thư mục nguồn lực mà chứa hình ảnh, css javascript, vv .. Khi bối cảnh ứng dụng của tôi là trong java.
Với bối cảnh ứng dụng XML bình thường tôi sử dụng thẻ này để cô lập các bản đồ đến/nguồn/
<mvc:resources mapping="/resources/**" location="/resources/" />
Làm thế nào tôi có thể làm được điều này, vì vậy ứng dụng web của tôi có thể sử dụng hình ảnh của tôi, css, vv
Phiên bản nào bạn đang sử dụng? –
Tôi đang sử dụng 3.2.0 – Rohwedder