users 表:username,password,role...
org 表:lineId,lineleaderId,linesupId...
emp 表:empId,lineId...
ot 表:empId,otnum...实现思路:
1.根据username,得到对应的role;
2.根据role,判断属于lineleaderId,还是linesupId;
3.根据lineleaderId或是linesupId,得到对应的lineId (是个集合);
4.根据lineId 得到empId,进而得到ot 表中对应的empId 的信息。求该思路的实现方法或简单示例?越细致越好,需明确到底是通过什么来实现的,是Interceptor? Filter?或是...

解决方案 »

  1.   

    org 表:lineId,lineleaderId,linesupId... 
    emp 表:empId,lineId... 
    ot 表:empId,otnum... 
    这三个表是有关联的,那这个问题就可以简化为两步,一步是取到users表的role,第二步就是通过role,经过一系列的关联,得到想要的答案.
    第一步可以用filter或是自己写控制代码,而第二步嘛,可以用SQL做关联查询.
      

  2.   

    S2SH框架下 可用Interceptor做权限控制 很方便!
      

  3.   

    用struts2的Interceptor做权限控制,然后在建对象的时候用hibernate弄好他们之间的关系。
    不难解决
      

  4.   


    在Interceptor 中作何操作,是如下:...
    @SuppressWarnings("serial")
    public class IsOkInterceptor extends AbstractInterceptor{   
      
        @SuppressWarnings("unchecked")
    public String intercept(ActionInvocation invocation) throws Exception {   
            
                 if(invocation.getInvocationContext().getSession().get("role")!=null){              
             //???
            }else{           
            
             return invocation.invoke(); 
            }   
        }   
    }  
    我设想的是如果role==null 则为管理员权限,可查询所有,如果role!=null 则根据role 的值去org 表中查询相应的lineId(为集合)。
    我想清楚的知道,在该拦截器中作什么判断?
    根据role 去org 中查询在哪一步完成?本人初涉SSH ,望各位达人悉心讲解下,如果可以追加分,一定重酬!!!
      

  5.   

    那就劳烦,写一些该HQL 语句噻...