3

Spring MVC に対して、実行時に (メソッドで) 静的リソースを返すようにするにはどうすればよいですか?

もっとよく説明してください。アプリケーション (spring-mvc 3.2.4) を構成して、いくつかの静的リソースを処理し、FreeMaker と Json の 2 つのビュー リゾルバーを操作します。ビュー リゾルバーの 1 つによってハドルを試行しても、コントローラー メソッドで spring-mvc に、静的リソースでファイルを取得する必要があると言えたらいいのにと思います。

私の構成クラスは次のようになります。

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.xxxx", excludeFilters =  @Filter(Configuration.class)})
public class WebConfig extends WebMvcConfigurerAdapter {
    ...
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/app.js").addResourceLocations("/app.js");
    }
    ...
    @Bean
    public ViewResolver contentNegotiatingViewResolver(ContentNegotiationManager manager) {
        // Define the view resolvers
        List<ViewResolver> resolvers = new ArrayList<ViewResolver>();       

        JsonViewResolver jsonViewResolver = new JsonViewResolver();

        FreeMarkerViewResolver freeMarkerViewResolver = new FreeMarkerViewResolver();
        freeMarkerViewResolver.setSuffix("rtl");

        resolvers.add(jsonViewResolver);
        resolvers.add(freeMarkerViewResolver);

        ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
        resolver.setContentNegotiationManager(manager);
        resolver.setViewResolvers(resolvers);
        return resolver;
    }
}

私のコントローラー:

@Controller
@RequestMapping("/")
public class JSViewController {

    @RequestMapping(value="*.js")
    public String resolveArquivo(HttpServletRequest request){
        // Here I would be able to say to sprint to return a static resource instead of hadle it with one of the View Resolvers.        
        return request.getRequestURI().replace(request.getContextPath(),"");
    }
}
4

2 に答える 2