Еще один вопрос по Struts

User avatar
webdeveloper
Уже с Приветом
Posts: 2049
Joined: 12 Jul 2000 09:01
Location: Madison, Wisconsin USA

Еще один вопрос по Struts

Post by webdeveloper »

Есть приложение которое работает на нескольких языках. Если человек хочет переключить язык то он может это сдлеать используя форму в верху страницы. Проблема в том что конфигурируя action приходится уазывать forward жестко прописывая там адрес куда по окончании работы action будет перенаправлен пользователь.

Вот есть допустим код. По результатам работы этого кода пользователь будет отправлен на тот файл который указан в struts-config.xml. В нашем случае это login.jsp. А как сделать так что бы оно каждый раз отправлялось туда откуда пришло то есть на HTTP_REFERER?

Можно конечно делать response.sendRedirect(...) но это уже будет в обход Struts. Хотелось бы узанть мнение спциалистов.


Code: Select all

public class ChangeLanguageAction extends Action {

   public ActionForward execute(ActionMapping mapping,   ActionForm form, HttpServletRequest request, HttpServletResponse response)
   throws Exception{
      ActionForward forward = null;
      String language = ((ChangeLanguageForm)form).getLanguage();
      if(language != null && language.length() > 0){
         request.getSession().setAttribute(Globals.LOCALE_KEY,new Locale(language));
      }
      forward = mapping.findForward("Success");
      return forward;
   }
}

struts-config.xml

Code: Select all

    <action
     path="/changeLanguage"
     type="uscc.struts.ChangeLanguageAction"
     name="changeLanguageForm"
     scope="request">
         <forward name="Success" path="/login.jsp" redirect="true" />
     </action>

Return to “Вопросы и новости IT”