2011-11-16 53 views
0

我正在爲用戶開發一個登錄頁面,具有admin priviledge的用戶被轉發到特定路徑,並且具有用戶privledge的用戶被轉發到另一個路徑。我想在處理java類之後轉發。我是新來的Struts 2轉發到Struts 2中的不同路徑

最好的問候,

回答

2

通過Forward如果你的意思是將用戶重定向到不同的頁面?如果是這樣的話比你所設置的結果字符串在你的行動像

public class MyActionextends ActionSupport{ 
    String action="default" 
    //getter and setter for action 
    public String execute() throws Exception { 
     String view; 

     if admin 
     view="admin_view" 
     action="admin_view" 
     if user 
     view="user" 
     action="user" 
     return view; 


    } 
] 

struts.xml這樣做

<action name="myaction"> 
    <result name="user">user.jsp</result> 
    <result name="admin_view">admin.jsp</result> 
</action> 

What dave has suggested 
<action name="myaction"> 
    <result>/WEB-INF/${action}_home.jsp</result> 
    <result name="input">/WEB-INF/login.jsp</result> 
</action> 
+0

更超過了通用的一個,你可以去戴夫曾建議 –

+0

FWIW您可能不想像第一個結果配置那樣重定向到普通的JSP,而是轉發或重定向到某個操作。 –

+0

@DaveNewton是你right.i編輯我的文章:) –

2

最簡單的解決方法就是宣告爲每個用戶類型不同的結果。

<action name="login"> 
    <result name="admin">/WEB-INF/admin_home.jsp</result> 
    <result name="user">/WEB-INF/user_home.jsp</result> 
    <result name="input">/WEB-INF/login.jsp</result> 
</action> 

actionRedirect可能是更理想的,實施後重定向消息獲得的圖案。

還有其他幾個選項,包括使用動作變量來決定要去哪個選項。例如,如果你暴露的動作特性which

<action name="login"> 
    <result>/WEB-INF/${which}_home.jsp</result> 
    <result name="input">/WEB-INF/login.jsp</result> 
</action>