struts2前後臺傳值---利用值棧
阿新 • • 發佈:2019-01-31
在action中將查出的資料放入到值棧中
//準備資料
List<Department> departmentList=departmentService.findAll();
//放到值棧中
ActionContext.getContext().put("departmentList", departmentList);
//在頁面獲取值棧中的資料的時候用#獲取
在前臺以下拉框為例,賦給下拉框值棧中的值
<tr><td width="100">上級部門</td> <td> <!-- 獲取action中放入值棧中的資料,並進行下拉列表的顯示 --> <s:select name="parentId" cssClass="SelectStyle" list="#departmentList" listKey="id" listValue="name" headerKey="" headerValue="==請選擇部門==" /> </td> </tr>
從頁面傳值到ACTION如下: 1、先在struts.xml裡面設定頁面跳轉的方法名和路徑的<action>,如下:
<!-- 部門管理 配置struts,便於頁面呼叫action方法,比如:role_delete--> <action name="department_*" class="departmentAction" method="{1}"> <result name="list">/WEB-INF/jsp/departmentAction/list.jsp</result> <result name="saveUI">/WEB-INF/jsp/departmentAction/saveUI.jsp</result> <result name="toList" type="redirectAction">department_list</result><!-- 重定向到role_list這個action中 --> </action>
2、然後再Jsp頁面裡面利用xml中的actionname來傳遞需要的引數: 例如:
<td><s:a action="department_list?parentId=%{id}">${name } </s:a> </td>
這樣,就轉換到了DepartmentAction類裡面的list方法裡面了。 DepartmentAction類裡面定義parentId的get和set方法:就可以接受從頁面傳過來的parentId的值了 如下:
private Long parentId; public Long getParentId() { return parentId; } public void setParentId(Long parentId) { this.parentId = parentId; } public String list() throws Exception { List<Department> departmentList=null; if(parentId==null){//頂級部門列表 departmentList=departmentService.findTopList(); }else{//子部門列表 departmentList=departmentService.findChildren(parentId); } ActionContext.getContext().put("departmentList", departmentList); return "list"; }