2016-06-24 2 views
1

У меня есть статическая страница, которую я хочу условно обслуживать на определенном URL-адресе.
С пружинной загрузкой я могу разместить страницы в каталогах ресурсов static или public и предоставить их всем, но если я хочу ограничить доступ или отключить доступ к ним с помощью флага функции, это не подходит.
Использование механизма шаблона Я могу загрузить страницу в качестве шаблона и вернуть ссылку на представление. Однако мое приложение довольно простое, и я не хочу использовать механизм шаблонов, если в противном случае мне не нужно его использовать.
Я хочу, чтобы иметь возможность использовать контроллер для определения погоды, обслуживаемой страницей или нет. Каков самый простой способ вернуть контроллер статической странице?spring-boot - условно обслуживать статический контент без шаблона двигателя

+0

Создать фильтр для контроля доступа. Так работает Spring Security. – Andreas

ответ

1

Самый простой способ вернуть статический контент с контроллера - вернуть Resource. Существует несколько реализаций класса Resource, но ClassPathResource имеет наибольшее значение для приложения для весенней загрузки.
В обычном весеннем загрузочном приложении в приведенном ниже примере будет отображаться src/main/resources/path/to/mypage.html, если mycondition() - true и в противном случае возвращает 404.

@RequestMapping("mypage.html") 
public Resource myPage() { 
    if(mycondition()) { 
     return new ClassPathResource("path/to/mypage.html"); 
    } else { 
     throw new ResourceNotFoundException(); 
    } 
} 

@ResponseStatus(HttpStatus.NOT_FOUND) 
private static class ResourceNotFoundException extends RuntimeException { 
    public ResourceNotFoundException() {} 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^