程序如下:

創(chuàng)新互聯(lián)長(zhǎng)期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為桐鄉(xiāng)企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè),桐鄉(xiāng)網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
class User{
private String userName;
private String passWord;
private Role role;
public User(String userName, String passWord, Role role){
this.userName = userName;
this.passWord = passWord;
this.role = role;
}
public Role getRole() {
return role;
}
public String getUserName() {
return userName;
}
}
class Role{
private int roleId;
private String roleText;
private String users;
private Right rights;
public Role(int roleId, String roleText, String users, Right rights){
this.roleId = roleId;
this.roleText = roleText;
this.users = users;
this.rights = rights;
}
public int getRoleId() {
return roleId;
}
}
class Right{
private int rightId;
private String rightText;
private String roles;
public Right(int rightId, String rightText, String roles){
this.rightId =rightId;
this.rightText= rightText;
this.roles = roles;
}
}
public class Test {
public static void main(String[] args) {
Right rights = new Right(2013012701, "banana", "host");
Role role = new Role(20130127, "apple", "Zhang San", rights);
User user = new User("Zhang San", "zhangsan123", role);
System.out.println("The ID of user: " + user.getUserName() + "'s role is " + (user.getRole()).getRoleId());
}
}
權(quán)限判斷用XML的比較多。不需要分支語(yǔ)句的代碼。直接讀取XML文件,生成相應(yīng)HTML就可以了。也就是你的XML或者數(shù)據(jù)表中有某權(quán)限哪些按鈕可用,哪些不具備,讀取數(shù)據(jù)表數(shù)據(jù)或XML,然后用代碼生成HTML,就是權(quán)限控制的效果了
給你一個(gè)思路:
首先查詢一級(jí)菜單,在查詢一級(jí)菜單中查詢以改菜單id為父菜單的二級(jí)菜單,如果有三級(jí)菜單的話同上~得出是list集合
部分代碼如下:
//參數(shù)roleMenuList?是查詢用戶角色與其對(duì)應(yīng)的目錄數(shù)據(jù)表中返回的數(shù)據(jù)!List?中的數(shù)據(jù)都是對(duì)象類型,該對(duì)象就是用戶角色與目錄關(guān)系表?的對(duì)象
private?String?loadmenu(List?roleMenuList)?{
String?userMenu?=?"";
MapString,?String?map?=?new?HashMapString,?String();
map.put(BaseConstants.DAO_SQL,?"?and?parentId?is?null");
map.put(BaseConstants.DAO_ORDERBY,?"order?by?f.sort");
try?{
//這里是查詢所有的目錄,返回Lst類型數(shù)據(jù)
ListAdminMenu?list?=?baseServices.queryAll("AdminMenu",?map);
for?(int?i?=?0;?i??list.size();?i++)?{
String?str?=?"";
String?subMenuStr?=?"";
AdminMenu?menu?=?list.get(i);
String?checkStr?=?"";
if?(roleMenuList?!=?null??roleMenuList.size()??0)?{
for?(int?j?=?0;?j??roleMenuList.size();?j++)?{
AdminRoleMenu?vo?=?(AdminRoleMenu)?roleMenuList.get(j);
if?(vo.getMenuId().getId().longValue()?==?menu.getId().longValue())?{
checkStr?=?"checked";
break;
}
}
}
str?+=?"liinput?type='checkbox'?"?+?checkStr?+?"?id='chk_menu_"?+?menu.getId()?+?"'?name='chk_menu_"?+?menu.getId()?+?"'?value='"?+?menu.getId()?+?"'"?+?menu.getName();
subMenuStr?=?loadSubMenu(menu.getId(),?roleMenuList);//這個(gè)地方是查詢二級(jí)菜單?loadSubMenu方法與該方法代碼差不多~
str?+=?subMenuStr;
str?+=?"/li";
userMenu?+=?str;
}
}?catch?(Exception?e)?{
log.error(e);
}
return?userMenu;
}
spring security可以實(shí)現(xiàn)。。不過spring要升級(jí)到3.0
tomcat6。7都能用,我有婉轉(zhuǎn)班。。置于前臺(tái)菜單用js隱藏也可以,用security判斷角色都行,
如果按資源判斷就要做acl。。這個(gè)很簡(jiǎn)單。。不過一般初學(xué)者要學(xué)會(huì)spring security至少要1,2個(gè)星期吧,如果樓主需要我可以把文檔發(fā)給你,如果你直接要代碼我也可以給你,但你看不懂。。建議還是看文檔先把,你留個(gè)郵箱給我我發(fā)給你。。
網(wǎng)站名稱:java用戶角色權(quán)限代碼,java角色權(quán)限控制
網(wǎng)站鏈接:http://chinadenli.net/article15/dsgdpdi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、Google、品牌網(wǎng)站制作、云服務(wù)器、企業(yè)網(wǎng)站制作、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)