2

私は春の mvc が初めてで、いくつか質問があります。

1) jsp ページから WEB-INF ディレクトリ内の img、css、および js にアクセスできますか?

フォルダ構造は次のとおりです。

ウェブアプリ
  - WEB-INF
     -CSS
     -js
     - 画像

2) WebMvcConfigurerAdapter を拡張するクラス WebMvcConfig があります。

@Configuration
@EnableWebMvc
@Import({BeanConfig.class, CacheConfig.class})
public class WebMvcConfig extends WebMvcConfigurerAdapter {  
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/css/**").addResourceLocations("/resources/css/").setCachePeriod(31556926);
        registry.addResourceHandler("/img/**").addResourceLocations("/resources/img/").setCachePeriod(31556926);
        registry.addResourceHandler("/js/**").addResourceLocations("/resources/js/").setCachePeriod(31556926);
    }   

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }   

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new ControllerInterceptor());
    }  

    @Bean
    public InternalResourceViewResolver getInternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }    
    @Bean
    public ContentNegotiatingViewResolver getContentNegotiatingViewResolver() {
        ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
        ArrayList<View> defaultViews = new ArrayList<View>();
        MappingJacksonJsonView jsonView = new MappingJacksonJsonView();
        jsonView.setPrefixJson(true);
        defaultViews.add(new MappingJacksonJsonView());
        resolver.setDefaultViews(defaultViews);
        resolver.setOrder(1);
        return resolver;
    }

    @Bean
    public ControllerInterceptor getLoggingInterceptor() {
        return new ControllerInterceptor();
    }
}

フォルダーへのアクセスを取得したい: /resources/css、/resources/img、/resources/js、

web.xml ファイルの一部:

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextClass</param-name>
        <param-value>
            org.springframework.web.context.support.AnnotationConfigWebApplicationContext
        </param-value>
    </init-param>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            config.WebMvcConfig
        </param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

フォルダ構造は次のとおりです。

ウェブアプリ
   - WEB-INF
   - 資力
        -CSS
        -js
        - 画像

しかし、それはうまくいきません

4

1 に答える 1

5

はい、できます。

registry.addResourceHandler("/css/**").addResourceLocations("/resources/css/").setCachePeriod(31556926);

そして、あなたはこの構造を持っています

webapp
   - WEB-INF
   - resources
        - css
            - somefile.css
        - js
        - img

でリソースにアクセスします。

localhost:8080/context/css/somefile.css

からリソースを取得し/resources/css/somefile.cssます。他のすべてのリソースについても同じことを行います。

于 2013-09-22T05:47:17.273 に答える