在权限实体类中写一个递归的方法
StringBuffer sb1=new StringBuffer();
StringBuffer sb=new StringBuffer();
/**
* 递归实现无限级分类
* @param parentID
* @return StringBuffer
*/
public StringBuffer getNodes1(String parent_rightid) {
Function function = new Function();
function.setParent_functionid(parent_rightid);
List<Function> la=new FunctionBizImpl().getFunction(function, null);
if(la!=null&&la.size()!=0) {
for (int i = 0; i < la.size(); i++) {
sb1.append(la.get(i).getFunctionid()+":");
// for (int j = 1; j < la.get(i).getBook_category_level(); j++) {
// sb1.append(" ");
// }
sb1.append(la.get(i).getFunction_name()+",");
getNodes1(la.get(i).getFunctionid());
}
}
return sb1;
}
在Dao类中写一个获得所有权限的方法
/**
* 根据条件查询权限
* @param right
* @param pageBean
* @return List<Right>
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public List<Function> getFunction(Function function, PageBean pageBean) {
// TODO Auto-generated method stub
String sql="select * from t_function where 1=1 ";
if(pageBean==null) {
if(function!=null) {
if(function.getParent_functionid()!=null&&!"".equals(function.getParent_functionid())) {
sql+=" and parent_functionid='"+function.getParent_functionid()+"'";
}
if(function.getFunctionid()!=null&&!"".equals(function.getFunctionid())) {
sql+=" and functionid='"+function.getFunctionid()+"'";
}
}
}
return new BaseDao().executeQuery(sql, pageBean, new BaseDao.CallBack<Function>() {
@Override
public List<Function> forEach(ResultSet rs) throws SQLException {
// TODO Auto-generated method stub
List<Function> la=new ArrayList<>();
try {
while(rs.next()) {
la.add(new Function(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6), rs.getInt(7)));
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return la;
}
});
}
最后在jsp页面中调用方法即可。