Вот в чем дело,
Чтобы подражать тому, как grails выполняет несколько отправок для одной формы, я реализовал этот перехватчик, чтобы, когда он встречает URL-адрес, такой как:
/ what-url / $ {controllerName} / индекс, который он перенаправляет на / what-url / $ {controllerName} / $ {submitName}
У меня есть две проблемы: во-первых, он перенаправляется методом get, а во-вторых, я не сохраняю postData из исходной формы, которая была в jsp, у кого-нибудь есть идея, как установить это обратно в перенаправленном запросе?
Вот класс перехватчика:
</p>
<pre class="lang-java prettyprint-override"><code> public class ControllerIndexInterceptor extends HandlerInterceptorAdapter {
private static String[] redirects = {"edit", "delete"};
/**
* {@inheritDoc}
*/
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String param = null;
for (String redirect : redirects) {
if((param = request.getParameter(redirect)) != null){
response.sendRedirect(request.getContextPath()+request.getServletPath()+
transformURI(request.getPathInfo(), redirect, handler));
return false;
}
}
return true;
}
Ответ:
</p>
<pre class="lang-java prettyprint-override"><code> public class ControllerIndexInterceptor extends HandlerInterceptorAdapter {
private static String[] redirects = {"edit", "delete"};
/**
* {@inheritDoc}
*/
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String param = null;
for (String redirect : redirects) {
if((param = request.getParameter(redirect)) != null){
request.getRequestDispatcher(request.getServletPath()+
transformURI(request.getPathInfo(), redirect, handler)).forward(request,response);
return false;
}
}
return true;
}