分类: Java
2008-04-23 22:17:13
在做struts时,使用struts的forward来转交页面.一般这样配置.
有时候想用redirect也比较麻烦,因为struts里没有
难道要用一个中转的jsp页面使用
struts里使用ActionForward来forward,应该可以重载或者它里面有什么方法可以实现这个功能的。
于是struts1.2.7诞生了ActionRedirect子类.
API 是这么调用的.
看ActionRedirect的源码,很简单的,只是调用了一个构造函数来初始化它的ForwardConfig的实例变量.
如果我们单纯使用ActionForword的setRedirect(true);来设置forward,是会抛出例外的.
IllegalStateException("Configuration is frozen");
看ActionRedirect的源代码吧,不想多说了.
//生成这个forward时,configured属性已经被设置为true了,所以只能新建一个forward,configured默认才为false
//怎么生成forward的,以后找.
问题是redirect会把request里的东东都清空了.
private ActionForward addFrns(SourcingAchatListForm form, HttpServletRequest request, ActionMapping mapping, HttpServletResponse response,
String userIdSelected, String artCodeStr, boolean isPalette) {
Integer codeFrns = Integer.parseInt(request.getParameter("codeFrns"));
Integer codeArt = Integer.parseInt(request.getParameter("codeArt"));
fam.safeCreateFournisseurArticle(codeArt,codeFrns);
ActionRedirect redirect = new ActionRedirect(mapping.findForward("self"));
redirect.addParameter("waction", "actualiser");
redirect.addParameter("pageNumber", request.getParameter("pageNumber"));
redirect.addParameter("wareHousepageNum", request.getParameter("wareHousepageNum"));
return redirect;
}
* @struts.action-forward name="self" path="/sourcingAchatList.do"