Когда я делаю переадресацию с помощью RequestDispatcher .. загружается страница результатов, но URL-адрес не изменяется.AEM - URL-адрес не изменяется с помощью RequestDispatcher forward
URL, где мы начинаем и отправить данные в PostServlet: http://localhost:4502/content/en/postformtest.html
Конечный результат URL должен быть: http://localhost:4502/content/en/postformtestresult.html
Но: http://localhost:4502/services/processFormData
Что мне не хватает? Цените любые мысли.
Фрагменты кода ..
HTML-форма:
<form name="userRegistrationForm" method="post" action="/services/processFormData">
<input type="submit" title="Submit" class="btn submit btn-success" value="Submit" tabindex="25" name="bttnAction">
</form>
POST-Servlet
@SlingServlet(
label = "Common POST Servlet",
metatype = true,
methods = { "POST" },
name="com.commons.service.servlets.TPostServlet",
paths = { "/services/processFormData" }
)
public class TPostServlet extends SlingAllMethodsServlet{
@Override
protected void doPost(SlingHttpServletRequest request,SlingHttpServletResponse response) throws ServletException,IOException {
final SlingHttpServletRequest syntheticRequest = new SyntheticSlingHttpServletGetRequest(request);
final RequestDispatcherOptions options = new RequestDispatcherOptions();
options.setReplaceSelectors("");
options.setForceResourceType("cq/Page");
request.getRequestDispatcher("/content/en/postformtestresult.html", options).forward(syntheticRequest, response);
}
}
обертка Servlet:
public class SyntheticSlingHttpServletGetRequest extends
SlingHttpServletRequestWrapper {
private static final String METHOD_GET = "GET";
public SyntheticSlingHttpServletGetRequest(final SlingHttpServletRequest request) {
super(request);
}
@Override
public String getMethod() {
return METHOD_GET;
}
}
Спасибо за подробное объяснение. Модели, которые я пытаюсь достичь, это POST-REDIRECT-GET, которые, я думаю, редки и противоречат концепциям REST/Stateless. Но я хотел бы попробовать, если есть способ, и если компоненты OOB Adobe будут использоваться, то точно. Можете ли вы отправить пример реализации или указать мне на любой URL? Я нашел пример класса в GitHub здесь https: // github.ком/Ooyala/Ooyala-AdobeCQ/BLOB/23d3a18066cd64ea6bdd19d70fef63041d2fe35a/щ/ЦСИ/содержание/jcr_root/ЛИЭС/основа/SRC/осущ/SRC/основные/Java/COM/день/сд/WCM/фундаментные/формы/осущ/FormsHandlingServlet. Ява –