Struts перенаправляет с параметрами

Я использую struts 1.2.4, но мне нужно перенаправить параметры с сервлета действий на целевую страницу. Я не могу перейти на стойки 1.2.7+, поэтому я не могу воспользоваться преимуществами ActionRedirect.

Прямо сейчас метод save() в моем классе действий возвращает ActionForward

    return (mapping.findForward("success"));
}

который сопоставлен с этой записью в struts-config.xml

        <forward 
            name="success" 
            path="/enterprise/company/searchCompany.do"/>

На самом деле мне бы хотелось, чтобы метод save() перенаправлял что-то вроде '/enterprise/company/saveSurvey.do?companyID=1' -- значение companyID доступно для метода сохранения моего класса действий.

Каков наилучший способ выполнить перенаправление с параметром, если я не могу обновить Struts, чтобы воспользоваться преимуществами ActionRedirect?


person user619804    schedule 04.08.2011    source источник


Ответы (1)


Я вижу 2 варианта, но у меня определенно мало знаний в этой области.

Во-первых: вы можете сохранить свои параметры в карте, а затем в сеансе, а после этого вы можете загрузить их.

public ActionForward execute (HttpServletRequest request, ....){
  Map<String,String> params = new HashMap<>();
  params.put("companyId","1");
request.getSession().setAttribute("PARAM_MAP",params);
   return (mapping.findForward("success"));
}

В другом вашем методе вы можете получить параметры с этой карты, например

Map<String,String> map = (Map<String,String>)request.getSession().getAttribute("PARAM_MAP");

Второй вариант проще. Вы можете использовать 1 форму для обоих действий, и в struts.xml вы должны указать, что

<form-beans>
   <form-bean name="MyBeanForm" type="your.full.packet.path.MyBeanForm"/>
</form-beans>

<action-mappings>

  <action path="searchCompany"
          name ="MyBeanForm"
          scope="session"
          type="enterprise.company.SearchCompanyAction" />


  <forward 
            name="success" 
            path="/enterprise/company/searchCompany.do"/>

</action-mappings>
person Dred    schedule 14.12.2020