我正在使用struts 1.2.4,但是我需要使用Action Servlet中的参数重定向到目标页面。我无法升级到1.2.7+ struts,因此我无法利用ActionRedirect
。
现在,我的action类中的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
,那么使用param完成重定向的最佳方法是什么?
答案 0 :(得分:0)
我看到了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");
第二个变体更容易。您可以为Actions使用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>