在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";
}