Я столкнулся с проблемой перехвата и изменения URL-адреса запроса, чтобы связать его с правильным URL-адресом. Я использую структуру полос и хочу перенаправить пользователя на правильный поддомен. Например. если пользователь принадлежит abc.sitename.com и запрос пришел с xyz.sitename.com, он должен быть перенаправлен на abc.sitename.com со всем постом запроса. Для getparameter я сделал это, просто получив URL-адрес запроса и запрос запроса и перенаправив пользователя из пользовательского класса перехвата перед выполнением разрешения жизненного цикла. Но все параметры сообщения сбрасываются, так как это перенаправление. Другим решением было переслать разрешение, но оно может привести пользователя в контекст, и мне нужно переопределить его как:
resolution = new OnwardResolution<ForwardResolution>(reponseUrl) {
@Override
public void execute(HttpServletRequest request,
HttpServletResponse response) throws Exception {
request = ctx.getRequest();
response = ctx.getResponse();
String path = reponseUrl; //getUrl(request.getLocale());
// Set event name as a request attribute
String oldEvent = (String) request.getAttribute(StripesConstants.REQ_ATTR_EVENT_NAME);
//request.setAttribute(StripesConstants.REQ_ATTR_EVENT_NAME, event);
log.info("check: {}", path);
// Revert event name to its original value
request.setAttribute(StripesConstants.REQ_ATTR_EVENT_NAME, oldEvent);
// Figure out if we're inside an include, and use an include instead of a forward
RequestDispatcher dispatcher = request.getRequestDispatcher(path);
//request.getRequestDispatcher(path).forward(request, response);
dispatcher.forward(request, response);
}
};
Но он вызывает путь контекста приложения, тогда как он должен вызывать полный URL-адрес. Другое решение, если я использую разрешение перенаправления и устанавливаю параметр includerequest true, выполнит задание, но поместит все параметры запроса в URL-адрес, что сделает его неприемлемым.
URL-адрес запроса должен быть изменен до выполнения разрешения, так как после этого он будет бесполезен, я пробовал. есть ли способ установить URL-адрес запроса в HTTPServeletRequest.
Я также пытался перехватить во время ActionBeanResolution, это лучшее место для такой деятельности. Моя основная проблема - параметры POST. Я не могу перенаправить (поскольку они сбрасываются или если использовать параметр reuest, они видны в URL-адресе). Форвард разрешение вперед в контексте. Если есть способ перенаправить его на новый URL-адрес, он выполнит эту работу.
Заранее спасибо.