`
zisefeiniao
  • 浏览: 172422 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

一个项目也不难啊

阅读更多
   第二个项目开始做了些,其实我感觉真的不难,加上了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\!

分享到:
评论

相关推荐

    系统集成项目管理工程师题库(难)

    1、你被任命为你的组织内一个项目经理,负责设计,开发和执行一套企业资源规划系统(即ERP系统)。你将与组织外的供货商签约,后者提供ERP软件。你认识到详细规划这些实时系统是成功的关键,因此组建了一个由重要...

    upan一个小项目

    "upan"看起来像是一个项目或者工具的名字,但在这个场景下信息略显不足,因为没有提供足够的背景或详细描述。通常在IT行业中,一个项目或工具的命名可能来源于多种因素,比如开发者的名字、项目的功能首字母缩写、...

    北大青鸟学士后Java工程师第一单元项目案例在线TXT小说阅读

    《北大青鸟学士后Java工程师第一单元项目案例——在线TXT小说阅读》是一个典型的Java编程实践项目,旨在帮助初学者掌握Java基础以及Web应用开发的基本技能。该项目的主要目标是实现一个能够在线浏览TXT格式小说的...

    《Kafka并不难学!入门、进阶、商业实战》_邓杰_2018-11-01

    邓杰的《Kafka并不难学!入门、进阶、商业实战》可能会涵盖如何设计Kafka架构、优化性能、处理异常情况、与其他技术栈(如Hadoop、Spark)的集成等内容,帮助读者从基础到高级全面掌握Kafka的使用。 总的来说,...

    信息化项目实施的难点.docx

    因此,业务需求确认困难将使信息系统的建设疲于应付业务需求的变更,不但很难形成一个相对固定的系统应用版本,而且将引起项目的投资增加和工期延长。 其次,项目范围不易精确界定也是信息化项目实施的难点之一。...

    maven-聚合项目-springMVC

    在这个项目中,我们不难看出开发者专注于演示Maven的聚合功能以及Spring MVC在应用开发中的作用,而没有涉及数据库的持久层实现。 **Maven**是Apache软件基金会开发的一款项目管理工具,它通过使用XML文件来管理和...

    项目估算与计划不是一般的难

    - **甲方估算**:通常是基于项目预期和预算,甲方可能会有一个初步的价格预设,旨在找到性价比最高的供应商。 - **乙方投标估算**:软件公司在不清楚全部需求的情况下,需要估算成本并设定投标价格,需要考虑工作...

    项目管理进度管理

    时间是一种特殊的资源,以其单向性、不可重复性、不可替代性而有别于其他资源,因此进度计划也是项目计划中最难、最重要、最核心的部分。 在进度计划中,首先根据任务分解的结果(WBS)再进一步分解出主要的任务...

    JAVA项目经理面试题.pdf

    由于提供的【部分内容】信息量非常...通过上面的解读,我们不难看出,JAVA项目经理需要具备广泛的技术知识和项目管理技能。在实际的面试中,这些问题将帮助面试官评估候选人是否具备带领JAVA项目成功的必要知识和经验。

    项目时间管理作业.pdf

    项目时间管理是项目管理的一个重要组成部分,涉及定义、组织、规划、以及控制项目活动时间的相关活动。一般包括以下知识点: 1. 工作分解结构(Work Breakdown Structure, WBS):是一种将项目工作细分为更小、更...

    参与开源项目很难吗?.doc

    作者认为,参与开源项目不一定是困难的,但需要掌握一定的技术和技巧。 参与开源项目的好处 -------------------- ### 小礼品 参与开源项目可以获得小礼品,如 T 恤、杯子、背包等,这些礼品可能不是很有价值,但...

    gitee练习项目-难:2021-10-22

    【标题】"gitee练习项目-难:2021-10-22" 涉及的是一个在Gitee平台上进行的高级难度的编程练习项目,时间戳为2021年10月22日。这个项目可能是为了提升开发者在商城管理平台方面的技能和实践经验。 【描述】"商城...

    python新手算法函数思想入门项目,包含几个小项目,没有程序基础可以根据这个开拓思维,会发现算法也挺好玩的,标有注解,一看就懂

    记得,实践是学习编程的最佳途径,动手完成每一个小项目,你会发现自己对Python的理解逐渐加深,也会发现算法其实并不难,甚至还挺有趣的。 总之,"Python新手算法函数思想入门项目"是一个理想的起点,它结合了理论...

    项目分析及项目反应理论.ppt

    项目分析是对组成测验的每个测题进行分析,包括质的分析和量的分析。应用包括测题选择和编制(经典测量理论);测验等值、试题库、计算机自适应考试(现代测量理论)。 项目难度是指测题的难易程度,可以用以下方法...

    浅谈预研型项目管理.docx

    3. 进度计划不确定性:由于需求和技术的不确定性,预研项目的进度计划很难在初期制定得非常精确,需要随着项目的进展不断调整。 四、预研型项目管理的重点 1. 总体技术规划:对项目进行全面规划,明确需求、技术...

    北航“软件项目管理”

    北航“软件项目管理”教程: 1·Software Engineering theories combine with case studies. 2·Organization 3·Software Project Initiation 5·Software Estimation 6·软件质量管理 7·软件配置管理 8·风险管理...

    项目质量管理教程,如何做好项目质量管理

    所以,做好项目质量管理的第一步是在一个项目开始前,除了确定项目目标外,还要清楚这个项目的质量是什么,然后再考虑如何保证质量并制定衡量质量的标准。 为什么说要准确识别项目质量呢?在很多情况下,我们自己都...

    项目章程的具体写法,里面有表格

    项目章程的困难和挑战部分用于介绍项目的困难和挑战,例如本项目的困难和挑战包括工作任务超负荷、人员观念和传统习惯比较难改变、企业组织和管理模式可能出现不稳定、需求不是很清晰等信息。 七、项目章程的关键...

Global site tag (gtag.js) - Google Analytics