首先:在action類中給rquest設置一個屬性:
例如:
String catalogid = ServletActionContext.getRequest().getParameter("catalogid");
ServletActionContext.getRequest().setAttribute("catalogid", catalogid);
接着:在action配置中配置url
<action name="saveCatalog" class="bookCatalogBean" method="saveBookCatalog">
<result name="success" type="redirect">/admin/book/loadTopCatalogs.action</result>
<result name="add" type="redirect-action">/admin/book/addSubCatalog?id=${#request.catalogid}&type=add</result>
</action>
這樣就可以在addSubCatalog裏面用url傳遞的參數了
在這個配置文件裏,多個參數的連接符使用了"&",但XML的語法規範,應該使用"&"代替"&",原理和HTML中的轉義相同,開始沒有注意,在struts分析配置文件時,總是報出這樣的錯誤:
Java代碼
The reference to entity "id" must end with the ';'
進行上面說明的替換後,就正常了
struts2 redirect-action傳遞參數問題解決方案
我想在Post被Save 成功之後,直接轉到 viewPost 頁面,該頁面顯示主貼及所有跟貼,
也就是由savePost.action 轉到 viewPost.action 並且要將主貼的postid作爲參數傳過去,配置如下:
<package name="post" namespace="/post" extends="struts-default">
<action name="savePost" method="savePost" class="net.mengfanpp.bbs.post.web.action.PostAction" >
<result type="redirect-action">viewPost?postid=${postid}</result>
<result name="input">/WEB-INF/pages/post/edit.jsp</result>
</action>
<action name="viewPost" class="net.mengfanpp.bbs.post.web.action.PostAction" method="viewPost">
<result>/WEB-INF/pages/post/view.jsp</result>
</action>
</package>
Note: 紅色粗體部分 viewPost?postid=${postid} 不能寫成 viewPost.action?postid=${postid}
當有多個參數需要傳遞時,只需在各個參數添加&符號,例如
<result type="redirect-action">viewPost?postid=${postid}&postname=${postname}</result>