2011-07-12 29 views
0

我正在編寫登錄模塊,根據角色我想返回不同的動作。我有代碼,在我的struts.xml不同的操作:如何在struts2中返回不同的動作

if (role == 1) { 
    Sysyem.out.println("I am a admin"); 
    return "adminaction"; 
} else if (role == 2) { 
    Sysyem.out.println("I am a Manager"); 
    return "adminaction"; 
} else if (role == 3) { 
    Sysyem.out.println("I am a BA"); 
    return "adminaction"; 
} 

是否有任何其他的方法來處理這個支柱2.在我們使用的ActionForward做支柱1。我們爲行動分配一些價值並最終返還。

回答

1

youractionClass

if (role == 1) { 
    Sysyem.out.println("I am a admin"); 
    return "admin"; 
} else if (role == 2) { 
    Sysyem.out.println("I am a Manager"); 
    return "manager"; 
} else if (role == 3) { 
    Sysyem.out.println("I am a BA"); 
    return "ba"; 
} 

現在裏面struts.xml的簡單提及的resultname屬性中的字符串如下

<action name="loginAction" class="youractionClass"> 
    <result name="admin" type="redirect">adminaction</result> 
    <result name="manager" type="redirect">managerAction</result> 
    <result name="ba" type="redirect">baAction</result> 
</action> 
+3

如果你有X管理措施,Y經理的行動,和z baActions,然後爲每個和一個合適的攔截器創建一個包,檢查會話是否有適當的權限(因此用戶可以被授予B A和經理權利,但不是管理員)會很容易,靈活並且不會產生像上述策略那樣的意大利麪條動作...(這不是爲了批評你提供的anu,你確切地回答了問題......我是隻是對OP說這個策略有問題,除了這個小事情不應該使用)。 – Quaternion

+0

@uatemion是的,這是正確的做法 – anu

+0

謝謝anu,我已經實施它螞蟻它的工作在罰款 –

相關問題