/ / Правилен поток на URL за уеб приложение за Java-искра - web, spark-framework

Правилен поток от URL адреси за уеб Java-искрово приложение - уеб, искра рамка

Моето уеб приложение е създадено с Рамка на Spark (Свързване на същата страница като сървъра) URL адресът на първата страница е http://localhost:4567/start Оттук потребителят натиска бутон, за да реши една от четирите задачи. Бутонът за действие на формата е / започва

Сървърът проверява всичко е наред и след това връща новата страница за тази задача (например fixsongs) (т.е. връща съдържанието на страницата като низ) от страницата.

post(RoutePath.START, (request, response)       -> new ServerStart().processRoute(request, response));//User has picked task on start page

ServerFixSongs ssfs = new ServerFixSongs();
path(RoutePath.STARTFIXSONGS, () ->
{
//Display Page
post(RoutePath.FIX,             (request, response) -> ssfs.startTask(request, response)); //User submits form on Options page
});

Проблемът е че URL адресът остава същияте един зад мястото, където е потребителят

Вместо това сега разработих как да реша тована връщащата се на сървъра страница сега той пренасочва към /fixsongs.go (това се изобразява в маршрути), който извиква метод, който след това връща съдържанието на страницата като низ и променя URL адреса.

post(RoutePath.START, (request, response)       -> new ServerStart().processRoute(request, response));//User has picked task on start page
ServerFixSongs ssfs = new ServerFixSongs();
path(RoutePath.STARTFIXSONGS, () ->
{
get(RoutePath.GO,               (request, response) -> new FixSongsPage(request.session().attribute(FOLDER)).createPage(null, null)); //Display Page
post(RoutePath.FIX,             (request, response) -> ssfs.startTask(request, response)); //User submits form on Options page
});

Но имам два въпроса

  1. Дали този по-тромав подход е правилният начин да направите това
  2. Извършете тези допълнителни действия за пренасочване на въздействието

Забележка: Не използвам шаблони, а използвам уеб страници j2html

Не мога да направя директно пренасочване към html файл в първото обаждане, тъй като html не съществува, страниците се създават динамично.

Също така осъзнах това, макар и когато го представямзапочнете задача от START страница и изпратете POST заявка, защото Im пренасочване към STARTFIXSONGS това означава, че на следващия етап потребителят може да използва BACK бутона, за да се върне към STARTFIXSONGS. Бих предпочел те да не могат да направят това, така че това означава, че не трябва да използвам пренасочвания в този случай.

Отговори:

0 за отговор № 1

Въпросът ви всъщност не е свързан с Spark или j2html, а по-скоро с уеб-приложения като цяло.

Дали този по-тромав подход е правилният начин да направите това

Зависи от това, което искате. Ако искате потребителите да могат да навигират с помощта на бутоните на браузъра, използвайте потока Post-Redirect-Get. Ако не искате това вероятно трябва да използвате ajax искания, където публикувате на сървъра с JavaScript и сървърът отговаря с инструкции за актуализиране на DOM (обикновено в JSON формат)

Извършете тези допълнителни действия за пренасочване на въздействието

Не достатъчно, че трябва да се тревожите за това. Получавате още едно двупосочно пътуване, но в 99,9% от случаите няма значение. Ако вашата целева потребителска база преглежда страницата ви, използвайки GPRS на различен континент, би било така, но това вероятно не е така.