在Struts開發中,給ActionForward動態新增引數
阿新 • • 發佈:2019-02-07
ActionForward是Struts框架的Action中使用的一個物件。它指向一個具體的path。但是這個path一般是寫死在struts-config.xml中的,那麼怎麼給ActionForward物件動態新增引數呢?
這裡總結了幾種方法。
1. 最直接的方式:使用request或者session傳遞。
request.setAttribute()
request.getSession.setAttribute()
例:
request.setAttribute(name, value);return mapping.findForward("success");
2. 直接使用ActionForward構建一個新的包含引數的path。
例:
String userId = request.getParameter("user_Id");ActionForward af = new ActionForward("/xxx/xxx/xxx.do?userId=" + userId);
return af;
3. 先使用mapping.findForward()的方式獲得ActionForward物件後, 然後構建一個新的ActionForwad物件並新增引數
例:
String userId = request.getParameter("user_Id"); ActionForward af = mapping.findForward("edit");ActionForward af2 = new ActionForward(af.getPath + "?userId=" + userId);
return af;
當然,這只是一個簡單的例子來說明如何新增引數的,真正使用的時候,name為edit的path可能本身已經包含?了。這個時候就要先判斷是否含有?,如果有的話,就直接在後面新增"&userId=xx",如果沒有的話,就如例子中所示,直接新增。
總結:
以上三種方式,建議使用第一種。不建議使用第二種。
因為我們之所以使用struts-config.xml檔案來配置相關的url,就是不想把這個東東硬編碼到class檔案中,因為在開發過程中,處於一些模組化的考慮,url還是比較容易變化的。第二種就是一種惡劣的使用方式。第三種方式也還可以使用。