В приложении весенней загрузки, как загрузить статический контент (например, изображение) в jsp из локальной папки вместо папки ресурсов? - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь загрузить изображение на страницу JSP из моей локальной системной папки, которая находится на рабочем столе. Но при весенней загрузке образ загружается, только если он помещен в папку ресурсов. Как решить эту проблему?

Я уже попробовал приведенный ниже код из https://www.baeldung.com/spring-mvc-static-resources,, но не повезло.

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry
      .addResourceHandler("/files/**")
      .addResourceLocations("file:/opt/files/");
 }

Я получил ошибку, сказав

javax.servlet.ServletException: Circular view path [error]: would dispatch back to the current handler URL [/error] again. Check your ViewResolver setup!

Моя папка настроена следующим образом: в jsp загружаются только изображения из resources / static / img, и я хочу, чтобы изображения, присутствующие на рабочем столе, загружались. Пожалуйста, помогите.

enter image description here

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Я нашел путь к этому. Это можно сделать с помощью свойства, которое входит в файл application.properties

spring.resources.static-locations=file:PATH OF THE FOLDER

Например, если папка проекта находится на рабочем столе, она будет выглядеть примерно так:

spring.resources.static-locations=file:/Users/sandeepamarnath/Desktop/

На странице HTML OR Jsp полный путь может быть указан для статических файлов, таких как CSS, JS и Images

1 голос
/ 19 октября 2019

Вам нужно настроить немного больше. Сначала обработчик ресурсов, а затем viewresolver

@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/test/**")
                .addResourceLocations("file:D://tmp2/");
    }

    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/jsp/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }
}

. Это работающий пример в win10, вам необходимо соответствующим образом изменить путь addResourceLocations. Здесь вы можете найти проект https://github.com/ozkanpakdil/spring-examples/tree/master/spring-boot-jsp Не забудьте проверить pom.xml. чтобы запустить jsp в весенней загрузке. Нужна была дополнительная встраиваемая зависимость, в которую яшма вставляла.

...