struts2自定义标签中 使用in 判断当前值 是否在某个集合中
该属性一方面可以获取前端页面传递过来的参数 另外一个作用就是在数据回显时把用户已经拥有的权限id存入该集合中 放在栈顶
例如修改权限之前需要准备数据 这些数据保存在栈顶 在页面中可以使用ognl表达式来获取
页面
#privilegeList也保存在栈顶(循环的时候 把每个权限对象取出 放入栈顶)
这里需要做的功能就是 循环遍历栈顶的权限数据 然后显示他们 最后把用户已经选择的权限默认选中
in 前面的id值:每次循环遍历的权限对象中的id(每次遍历出的对象都是放在栈顶的)
in后面的privilegeIds:栈顶中的数据 表示用户已经选择的权限id
in的作用:判断当前id值 是否存在于集合privilegeIds中 如果存在 那么当前的复选框就被选中
---------------------------------------------------------
------------------------------------------
让实体类实现序列化接口的好处:用户登录之后 ,重启服务器,此时可以把用户登录的信息保存在本地硬盘上 服务器启动成功之后 会从硬盘读取数据 实现用户无需登录的效果
用户登录成功:
这个文件夹中什么也没有,此时用户是登录状态,用户信息也保存在session中 即存在于内存中:
此时关闭服务器:
在该项目的缓存目录中多了一个文件 这个文件就是当服务器重新启动的时候,把此时内容中的数据序列化输出到硬盘中 当再次启动的时候 就会从该文件中读取内容到内存中和session中 然后删除文件
虽然此时文件已经生成,但是因为我们的实体对象是没有实现序列化接口的 所以不能把数据保存在磁盘上 ,这个文件中的没有任何的内容。
接下来把实体类都实现序列化(如果保存的对象 和其他对象存在关联 那么关联的实体类也要序列化)
这个接口实现之后,不用重写或者实现任何的方法 只是代表实现者拥有序列化的能力 这个接口中什么都没有 就是一个空的接口
接下来我们登录用户
关闭服务器
观察文件夹 这次这个文件大小为5k 说明里边是存在内容的
开启服务器: 读取文件中的数据 然后删除了文件
刷新页面 依然登录状态