Как вернуть статическую html-страницу с помощью Spark Java?

Привет мир с искрой:

 get(new Route("/hello") {
            @Override
            public Object handle(Request request, Response response) {
                response.type("text/html");
                return "<h1>Hello Spark MVC Framework!</h1>";
            }
        });

Как вместо этого вернуть статический файл index.html?

Заметки:

  • Мне нужно, чтобы этот index.html был в банке
  • в духе простоты искры java я хотел бы максимально избежать использования шаблонов, которые были бы излишними для статической страницы.

person seinecle    schedule 10.12.2015    source источник


Ответы (2)


Вы можете сделать это, передав абсолютный путь к вашему каталогу статических ресурсов в этом методе:

externalStaticFileLocation("/var/www/public");

Или, передав относительный путь в этом методе:

staticFileLocation("/public");

Вызовите это перед установкой любого маршрута. Создайте файл index.html в корне каталога статических ресурсов.

person Laercio Metzner    schedule 11.12.2015
comment
Спасибо! И потом, как мне вернуть этот файл в методе get? - person seinecle; 12.12.2015
comment
Все статические файлы возвращаются через метод get. Чтобы увидеть свой index.html, просто откройте браузер и введите localhost:4567. - person Laercio Metzner; 16.12.2015
comment
У меня было несколько вопросов. В Spark Java, где находится каталог статических ресурсов? Кроме того, если маршрут обрабатывает /hello/, следует ли помещать файл index.html в /hello/? Наконец, можем ли мы использовать файл .JSP? - person code; 17.12.2015
comment
Если вы привыкли к программированию на JSP, SparkJava — это гораздо более свободный стиль. Он не предоставляет расположение по умолчанию для статических файлов, таких как каталог WEB-CONTENT в структуре проекта JSP (в eclipse). Вместо этого вы должны указать этот каталог. Если каталог находится внутри пути к классам вашего приложения, используйте staticFileLocation(/yourpath). Если он находится за пределами вашего проекта, укажите на него с помощью externalStaticFileLocation(/yourfullpath). - person Laercio Metzner; 18.12.2015
comment
Объявление новых маршрутов, таких как /hello/, не имеет ничего общего с созданием подкаталогов и прочим. Все это делается в вашем java-коде, внутри любого метода инициализации (может быть даже main(String[] args)), сделайте это так: get(/hello, (req, res) -> hello). Следуйте документации (sparkjava.com/documentation.html), и вы заметите, что это намного проще, чем JSP. и ЖСФ. - person Laercio Metzner; 18.12.2015
comment
Если я решу написать JSP, как мне следует отправить запрос на мой JSP. Потому что это не то же самое, что HTML, так как для преобразования этой страницы в HTML требуется компилятор JSP. - person pgollangi; 06.06.2016
comment
@Prasana Kumar, вы должны опубликовать новый вопрос, чтобы получить помощь от экспертов jsp. кстати, я думаю, вы могли бы добавить зависимость SparkJava в свой проект и отправлять запросы с вашего интерфейса на свой сервер с помощью jquery. - person Laercio Metzner; 06.06.2016

Я знаю, что очень опаздываю на вечеринку. Вы можете сделать следующее:

  1. staticFiles.location("/public"); // создаем папку с именем 'public' в папке 'src/main/resources'

  2. Когда приложение инициализировано, вызовите вышеуказанный метод перед любым из routes или requests. Это очень важно.

  3. В вашем "controller" вы можете добавить это так:

ответ.перенаправление("test.html"); вернуть ноль;

person UVM    schedule 28.11.2016
comment
Прелесть SO в том, что вы никогда не опаздываете на вечеринку. - person MonoThreaded; 28.03.2018