第二个项目开始做了些,其实我感觉真的不难,加上了Struts之后,我觉得好象也只是一个普通的工具,用起来跟之前真没什么区别,搞不懂啊,为什么很多人都说它很难,就连李老师也说,之前学习的时候很难,不过回想起李老师说的话,只要形成了正确的开发思路,一切都很简单。
在这次开发的项目中,我觉得数据库的关闭始终是一个比较麻烦的事,真不知道什么时候能解决这样的问题,可是Struts 1.x使起来好象问题也特别的多,自己只是感觉到有问题,至于什么具体的情况还真想不明白,慢慢来吧,有MLDN的支持呢,我坚信啊。
计划内任务
任务编号
任务名称
最晚结束日期
工作量
任务完成标准
完成状态
1
建库建表
2009/0515
2009/05/15
建立数据库及titem表和tsubitem
Y
3
DAO
2009/0515
2009/05/15
Y
3
一级栏目的增、删、改、查
2009/0515
2009/05/15
Y
4
二级栏目的增、删、改、查
2009/0515
2009/05/15
Y
临时任务
4.1. 1、如何判断用户是否有某个操作的权限
已解决
第一步:
定义一个权限对象:Power,
特殊之处:(1)该对象的一个特殊属性,Map对象,即权限名及权限值,
(2)还有就是该Power类的有参构造方法
package mldn.lin.vo;
import java.util.Map;
import java.util.TreeMap;
public class Power {
private boolean userflagC;
private boolean userflagR;
private boolean userflagU;
private boolean userflagD;
private boolean itemflagC;
private boolean itemflagR;
private boolean itemflagU;
private boolean itemflagD;
private boolean subitemflagC;
private boolean subitemflagR;
private boolean subitemflagU;
private boolean subitemflagD;
private boolean courseflagC;
private boolean courseflagR;
private boolean courseflagU;
private boolean courseflagD;
private boolean libraryflagC;
private boolean libraryflagR;
private boolean libraryflagU;
private boolean libraryflagD;
private boolean teacherflagC;
private boolean teacherflagR;
private boolean teacherflagU;
private boolean teacherflagD;
private boolean infoflagC;
private boolean infoflagR;
private boolean infoflagU;
private boolean infoflagD;
private boolean logflagC;
private boolean logflagR;
private boolean logflagU;
private boolean logflagD;
private boolean adminflagC;
private boolean adminflagR;
private boolean adminflagU;
private boolean adminflagD;
private boolean deptflagC;
private boolean deptflagR;
private boolean deptflagU;
private boolean deptflagD;
private Map<String,Boolean> power;
public Power(){
super();
}
public Power(Tadmin tadmin){
this.power=new TreeMap<String,Boolean>();
String[] userflag=tadmin.getUserflag().split("\\|");
this.setUserflagC(userflag[0].split(":")[1].equals("Y"));
this.setUserflagR(userflag[1].split(":")[1].equals("Y"));
this.setUserflagU(userflag[2].split(":")[1].equals("Y"));
this.setUserflagD(userflag[3].split(":")[1].equals("Y"));
power.put("userflagC", this.isUserflagC());
power.put("userflagR", this.isUserflagR());
power.put("userflagU", this.isUserflagU());
power.put("userflagD", this.isUserflagD());
String[] itemflag=tadmin.getItemflag().split("\\|");
this.setItemflagC(itemflag[0].split(":")[1].equals("Y"));
this.setItemflagR(itemflag[1].split(":")[1].equals("Y"));
this.setItemflagU(itemflag[2].split(":")[1].equals("Y"));
this.setItemflagD(itemflag[3].split(":")[1].equals("Y"));
power.put("itemflagC", this.isItemflagC());
power.put("itemflagR", this.isItemflagR());
power.put("itemflagU", this.isItemflagU());
power.put("itemflagD", this.isItemflagD());
String[] subitemflag=tadmin.getSubitemflag().split("\\|");
this.setSubitemflagC(subitemflag[0].split(":")[1].equals("Y"));
this.setSubitemflagR(subitemflag[1].split(":")[1].equals("Y"));
this.setSubitemflagU(subitemflag[2].split(":")[1].equals("Y"));
this.setSubitemflagD(subitemflag[3].split(":")[1].equals("Y"));
power.put("subitemflagC", this.isSubitemflagC());
power.put("subitemflagR", this.isSubitemflagR());
power.put("subitemflagU", this.isSubitemflagU());
power.put("subitemflagD", this.isSubitemflagD());
String[] courseflag=tadmin.getCourseflag().split("\\|");
this.setCourseflagC(courseflag[0].split(":")[1].equals("Y"));
this.setCourseflagR(courseflag[1].split(":")[1].equals("Y"));
this.setCourseflagU(courseflag[2].split(":")[1].equals("Y"));
this.setCourseflagD(courseflag[3].split(":")[1].equals("Y"));
power.put("courseflagC", this.isCourseflagC());
power.put("courseflagR", this.isCourseflagR());
power.put("courseflagU", this.isCourseflagU());
power.put("courseflagD", this.isCourseflagD());
String[] libraryflag=tadmin.getLibraryflag().split("\\|");
this.setLibraryflagC(libraryflag[0].split(":")[1].equals("Y"));
this.setLibraryflagR(libraryflag[1].split(":")[1].equals("Y"));
this.setLibraryflagU(libraryflag[2].split(":")[1].equals("Y"));
this.setLibraryflagD(libraryflag[3].split(":")[1].equals("Y"));
power.put("libraryflagC", this.isLibraryflagC());
power.put("libraryflagR", this.isLibraryflagR());
power.put("libraryflagU", this.isLibraryflagU());
power.put("libraryflagD", this.isLibraryflagD());
String[] teacherflag=tadmin.getTeacherflag().split("\\|");
this.setTeacherflagC(teacherflag[0].split(":")[1].equals("Y"));
this.setTeacherflagR(teacherflag[1].split(":")[1].equals("Y"));
this.setTeacherflagU(teacherflag[2].split(":")[1].equals("Y"));
this.setTeacherflagD(teacherflag[3].split(":")[1].equals("Y"));
power.put("teacherflagC", this.isTeacherflagC());
power.put("teacherflagR", this.isTeacherflagR());
power.put("teacherflagU", this.isTeacherflagU());
power.put("teacherflagD", this.isTeacherflagD());
String[] infoflag=tadmin.getInfoflag().split("\\|");
this.setInfoflagC(infoflag[0].split(":")[1].equals("Y"));
this.setInfoflagR(infoflag[1].split(":")[1].equals("Y"));
this.setInfoflagU(infoflag[2].split(":")[1].equals("Y"));
this.setInfoflagD(infoflag[3].split(":")[1].equals("Y"));
power.put("infoflagC", this.isInfoflagC());
power.put("infoflagR", this.isInfoflagR());
power.put("infoflagU", this.isInfoflagU());
power.put("infoflagD", this.isInfoflagD());
String[] logflag=tadmin.getLogflag().split("\\|");
this.setLogflagC(logflag[0].split(":")[1].equals("Y"));
this.setLogflagR(logflag[1].split(":")[1].equals("Y"));
this.setLogflagU(logflag[2].split(":")[1].equals("Y"));
this.setLogflagD(logflag[3].split(":")[1].equals("Y"));
power.put("logflagC", this.isLogflagC());
power.put("logflagR", this.isLogflagR());
power.put("logflagU", this.isLogflagU());
power.put("logflagD", this.isLogflagD());
String[] adminflag=tadmin.getAdminflag().split("\\|");
this.setAdminflagC(adminflag[0].split(":")[1].equals("Y"));
this.setAdminflagR(adminflag[1].split(":")[1].equals("Y"));
this.setAdminflagU(adminflag[2].split(":")[1].equals("Y"));
this.setAdminflagD(adminflag[3].split(":")[1].equals("Y"));
power.put("adminflagC", this.isAdminflagC());
power.put("adminflagR", this.isAdminflagR());
power.put("adminflagU", this.isAdminflagU());
power.put("adminflagD", this.isAdminflagD());
String[] deptflag=tadmin.getDeptflag().split("\\|");
this.setDeptflagC(deptflag[0].split(":")[1].equals("Y"));
this.setDeptflagR(deptflag[1].split(":")[1].equals("Y"));
this.setDeptflagU(deptflag[2].split(":")[1].equals("Y"));
this.setDeptflagD(deptflag[3].split(":")[1].equals("Y"));
power.put("deptflagC", this.isDeptflagC());
power.put("deptflagR", this.isDeptflagR());
power.put("deptflagU", this.isDeptflagU());
power.put("deptflagD", this.isDeptflagD());
}
// setter getter
}
第二步:当管理员登陆成功后,将权限保存在这个Power对象中,并放在session中
//管理员登陆成更后,将其权限设置到session中
Power power=new Power(tadmin);
request.getSession().setAttribute("power", power);
第三步:操作前的判断,例如查看一级栏目前的权限判断
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//TitemForm titemForm = (TitemForm) form;// TODO Auto-generated method stub
if(((Power)request.getSession().getAttribute("power")).getPower().get("itemflagR")){
Limit limit=RequestUtils.getLimit(request);
Map searchMap=limit.getFilterSet().getPropertyValueMap();
Map sortMap=limit.getSort().getSortValueMap();
try {
int allRecorders = DAOFactory.getITitemDAOInstance().getAllRecorder(searchMap);
int[] startEndRow=RequestUtils.getRowStartEnd(request, allRecorders, 5);
List<Titem> allTitem=DAOFactory.getITitemDAOInstance().doSelectAll(startEndRow[0], startEndRow[1], searchMap, sortMap);
request.setAttribute("allTitem", allTitem);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mapping.findForward("titemlist");
}else{
ActionMessages errors=null;
errors=new ActionMessages();
errors.add("itemflagR",new ActionMessage("itemflagR.not"));
this.addErrors(request, errors);
return mapping.getInputForward();
}
}
itemflagR.not=\u62B1\u6B49\uFF0C\u60A8\u8FD8\u6CA1\u6709\u67E5\u770B\u4E00\u7EA7\u680F\u76EE\u8868\u7684\u6743\u9650\!
在这次开发的项目中,我觉得数据库的关闭始终是一个比较麻烦的事,真不知道什么时候能解决这样的问题,可是Struts 1.x使起来好象问题也特别的多,自己只是感觉到有问题,至于什么具体的情况还真想不明白,慢慢来吧,有MLDN的支持呢,我坚信啊。
计划内任务
任务编号
任务名称
最晚结束日期
工作量
任务完成标准
完成状态
1
建库建表
2009/0515
2009/05/15
建立数据库及titem表和tsubitem
Y
3
DAO
2009/0515
2009/05/15
Y
3
一级栏目的增、删、改、查
2009/0515
2009/05/15
Y
4
二级栏目的增、删、改、查
2009/0515
2009/05/15
Y
临时任务
4.1. 1、如何判断用户是否有某个操作的权限
已解决
第一步:
定义一个权限对象:Power,
特殊之处:(1)该对象的一个特殊属性,Map对象,即权限名及权限值,
(2)还有就是该Power类的有参构造方法
package mldn.lin.vo;
import java.util.Map;
import java.util.TreeMap;
public class Power {
private boolean userflagC;
private boolean userflagR;
private boolean userflagU;
private boolean userflagD;
private boolean itemflagC;
private boolean itemflagR;
private boolean itemflagU;
private boolean itemflagD;
private boolean subitemflagC;
private boolean subitemflagR;
private boolean subitemflagU;
private boolean subitemflagD;
private boolean courseflagC;
private boolean courseflagR;
private boolean courseflagU;
private boolean courseflagD;
private boolean libraryflagC;
private boolean libraryflagR;
private boolean libraryflagU;
private boolean libraryflagD;
private boolean teacherflagC;
private boolean teacherflagR;
private boolean teacherflagU;
private boolean teacherflagD;
private boolean infoflagC;
private boolean infoflagR;
private boolean infoflagU;
private boolean infoflagD;
private boolean logflagC;
private boolean logflagR;
private boolean logflagU;
private boolean logflagD;
private boolean adminflagC;
private boolean adminflagR;
private boolean adminflagU;
private boolean adminflagD;
private boolean deptflagC;
private boolean deptflagR;
private boolean deptflagU;
private boolean deptflagD;
private Map<String,Boolean> power;
public Power(){
super();
}
public Power(Tadmin tadmin){
this.power=new TreeMap<String,Boolean>();
String[] userflag=tadmin.getUserflag().split("\\|");
this.setUserflagC(userflag[0].split(":")[1].equals("Y"));
this.setUserflagR(userflag[1].split(":")[1].equals("Y"));
this.setUserflagU(userflag[2].split(":")[1].equals("Y"));
this.setUserflagD(userflag[3].split(":")[1].equals("Y"));
power.put("userflagC", this.isUserflagC());
power.put("userflagR", this.isUserflagR());
power.put("userflagU", this.isUserflagU());
power.put("userflagD", this.isUserflagD());
String[] itemflag=tadmin.getItemflag().split("\\|");
this.setItemflagC(itemflag[0].split(":")[1].equals("Y"));
this.setItemflagR(itemflag[1].split(":")[1].equals("Y"));
this.setItemflagU(itemflag[2].split(":")[1].equals("Y"));
this.setItemflagD(itemflag[3].split(":")[1].equals("Y"));
power.put("itemflagC", this.isItemflagC());
power.put("itemflagR", this.isItemflagR());
power.put("itemflagU", this.isItemflagU());
power.put("itemflagD", this.isItemflagD());
String[] subitemflag=tadmin.getSubitemflag().split("\\|");
this.setSubitemflagC(subitemflag[0].split(":")[1].equals("Y"));
this.setSubitemflagR(subitemflag[1].split(":")[1].equals("Y"));
this.setSubitemflagU(subitemflag[2].split(":")[1].equals("Y"));
this.setSubitemflagD(subitemflag[3].split(":")[1].equals("Y"));
power.put("subitemflagC", this.isSubitemflagC());
power.put("subitemflagR", this.isSubitemflagR());
power.put("subitemflagU", this.isSubitemflagU());
power.put("subitemflagD", this.isSubitemflagD());
String[] courseflag=tadmin.getCourseflag().split("\\|");
this.setCourseflagC(courseflag[0].split(":")[1].equals("Y"));
this.setCourseflagR(courseflag[1].split(":")[1].equals("Y"));
this.setCourseflagU(courseflag[2].split(":")[1].equals("Y"));
this.setCourseflagD(courseflag[3].split(":")[1].equals("Y"));
power.put("courseflagC", this.isCourseflagC());
power.put("courseflagR", this.isCourseflagR());
power.put("courseflagU", this.isCourseflagU());
power.put("courseflagD", this.isCourseflagD());
String[] libraryflag=tadmin.getLibraryflag().split("\\|");
this.setLibraryflagC(libraryflag[0].split(":")[1].equals("Y"));
this.setLibraryflagR(libraryflag[1].split(":")[1].equals("Y"));
this.setLibraryflagU(libraryflag[2].split(":")[1].equals("Y"));
this.setLibraryflagD(libraryflag[3].split(":")[1].equals("Y"));
power.put("libraryflagC", this.isLibraryflagC());
power.put("libraryflagR", this.isLibraryflagR());
power.put("libraryflagU", this.isLibraryflagU());
power.put("libraryflagD", this.isLibraryflagD());
String[] teacherflag=tadmin.getTeacherflag().split("\\|");
this.setTeacherflagC(teacherflag[0].split(":")[1].equals("Y"));
this.setTeacherflagR(teacherflag[1].split(":")[1].equals("Y"));
this.setTeacherflagU(teacherflag[2].split(":")[1].equals("Y"));
this.setTeacherflagD(teacherflag[3].split(":")[1].equals("Y"));
power.put("teacherflagC", this.isTeacherflagC());
power.put("teacherflagR", this.isTeacherflagR());
power.put("teacherflagU", this.isTeacherflagU());
power.put("teacherflagD", this.isTeacherflagD());
String[] infoflag=tadmin.getInfoflag().split("\\|");
this.setInfoflagC(infoflag[0].split(":")[1].equals("Y"));
this.setInfoflagR(infoflag[1].split(":")[1].equals("Y"));
this.setInfoflagU(infoflag[2].split(":")[1].equals("Y"));
this.setInfoflagD(infoflag[3].split(":")[1].equals("Y"));
power.put("infoflagC", this.isInfoflagC());
power.put("infoflagR", this.isInfoflagR());
power.put("infoflagU", this.isInfoflagU());
power.put("infoflagD", this.isInfoflagD());
String[] logflag=tadmin.getLogflag().split("\\|");
this.setLogflagC(logflag[0].split(":")[1].equals("Y"));
this.setLogflagR(logflag[1].split(":")[1].equals("Y"));
this.setLogflagU(logflag[2].split(":")[1].equals("Y"));
this.setLogflagD(logflag[3].split(":")[1].equals("Y"));
power.put("logflagC", this.isLogflagC());
power.put("logflagR", this.isLogflagR());
power.put("logflagU", this.isLogflagU());
power.put("logflagD", this.isLogflagD());
String[] adminflag=tadmin.getAdminflag().split("\\|");
this.setAdminflagC(adminflag[0].split(":")[1].equals("Y"));
this.setAdminflagR(adminflag[1].split(":")[1].equals("Y"));
this.setAdminflagU(adminflag[2].split(":")[1].equals("Y"));
this.setAdminflagD(adminflag[3].split(":")[1].equals("Y"));
power.put("adminflagC", this.isAdminflagC());
power.put("adminflagR", this.isAdminflagR());
power.put("adminflagU", this.isAdminflagU());
power.put("adminflagD", this.isAdminflagD());
String[] deptflag=tadmin.getDeptflag().split("\\|");
this.setDeptflagC(deptflag[0].split(":")[1].equals("Y"));
this.setDeptflagR(deptflag[1].split(":")[1].equals("Y"));
this.setDeptflagU(deptflag[2].split(":")[1].equals("Y"));
this.setDeptflagD(deptflag[3].split(":")[1].equals("Y"));
power.put("deptflagC", this.isDeptflagC());
power.put("deptflagR", this.isDeptflagR());
power.put("deptflagU", this.isDeptflagU());
power.put("deptflagD", this.isDeptflagD());
}
// setter getter
}
第二步:当管理员登陆成功后,将权限保存在这个Power对象中,并放在session中
//管理员登陆成更后,将其权限设置到session中
Power power=new Power(tadmin);
request.getSession().setAttribute("power", power);
第三步:操作前的判断,例如查看一级栏目前的权限判断
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//TitemForm titemForm = (TitemForm) form;// TODO Auto-generated method stub
if(((Power)request.getSession().getAttribute("power")).getPower().get("itemflagR")){
Limit limit=RequestUtils.getLimit(request);
Map searchMap=limit.getFilterSet().getPropertyValueMap();
Map sortMap=limit.getSort().getSortValueMap();
try {
int allRecorders = DAOFactory.getITitemDAOInstance().getAllRecorder(searchMap);
int[] startEndRow=RequestUtils.getRowStartEnd(request, allRecorders, 5);
List<Titem> allTitem=DAOFactory.getITitemDAOInstance().doSelectAll(startEndRow[0], startEndRow[1], searchMap, sortMap);
request.setAttribute("allTitem", allTitem);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mapping.findForward("titemlist");
}else{
ActionMessages errors=null;
errors=new ActionMessages();
errors.add("itemflagR",new ActionMessage("itemflagR.not"));
this.addErrors(request, errors);
return mapping.getInputForward();
}
}
itemflagR.not=\u62B1\u6B49\uFF0C\u60A8\u8FD8\u6CA1\u6709\u67E5\u770B\u4E00\u7EA7\u680F\u76EE\u8868\u7684\u6743\u9650\!