2011-07-12 14 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"; 
} 

これは我々がするActionForwardでそれを行うために使用される支柱1 2.支柱処理する他の方法があります。私たちは何らかの価値を行動に送り、最終的にそれを返します。次のように

答えて

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を提供したものを批判するものではない。この戦略には問題があると言っているだけですが、すべての場合には、単純なケースを除いては使用すべきではありません)。 – Quaternion

+0

@uatemionはい、それは正しい方法ですね。 – anu

+0

ありがとうございました。私はそれをうまく実装しました。 –

関連する問題