这不,又写了一个管理员的类。我一个管理员,刚等进来,session是清白的,那我怎么读数据库中的user或者其他表的信息呢。
这归根结底还是要归到session上:
先上代码(get、set方法省略):
public class AdminAction { private Administrator admin; private AdminService adservice = new AdminServiceImpl(); private BuildingService buildingService = new BuildingServiceImpl(); private UserService userService = new UserServiceImpl(); private List<Building> buildingList; private List<User> userList; public String login(){ Administrator ad = adservice.login(admin); ActionContext.getContext().getSession().put("admin",ad); buildingList = buildingService.list(); userList = userService.list(); ActionContext tx=ActionContext.getContext(); tx.put("buildingList",buildingList); tx.put("userList",userList); if("admin".equals(ad.getName())&&"123456".equals(ad.getPassword())){ return "success"; }else { return "index"; } }
}
注:这并不是Administrator类,而是其对应的Action类
用写好的list()方法从表中读出对象(list方法是自己写的一个函数,可以去数据库读取指定表的所有内容)。根据“session中的数据才能放到前台显示"这个规则,我将那些读出来的对象再put到session里,以供前台读取。
现在离把这些对象的数据显示到前台就差一步了:在前台写好要显示哪些数据,例如我想把读出来的对象的属性——每一条数据的name属性——都显示出来:
<table> <s:iterator value="buildingList" id="building"> <tr> <td> ${name} </td> </tr> </s:iterator> </table>
这样,运行程序,就能实现由后台数据向前台数据的传输功能了。