struts 2のカスタムブロッキング


今日struts実験授業ではstrutsカスタムブロッキングが要求されています.ユーザー名がrで終わらないユーザーは/secネーミングスペースの下のActionにアクセスできません.
入力したユーザ名をjspページから簡単に取得し,ブロッキングで判断すればよい.ブロッキングの実装クラス'`package interceptor;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class CheckQuanxian extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {

//ActionContext ctx=invocation.getInvocationContext();//Actionコンテキストの取得//Mapセッション=ctx.getSession();//セッションの取得//String user=(String)セッション.get("username");HttpServeretRequest request=Service Context.getRequest();String user=request.getParameter("username");if(user.endsWith("r");{return invocation.invoke();}((ActionSupport)invocation.getAction()).addActionMessage("ユーザー名はrで終わるのではなく、アクセスできない");return"login";}
)
しかし、インターセプタの実装クラスでuesrnameを取得する際にトラブルが発生しました.invocation.getInvocationContext().getSession().get("username");usernameの値が取得できません.sessionにusernameを保存していないという値解決策は、サーブレットActionContextがservlet APIにアクセスしてgetParameter()で取得できるためです.
プロファイル
注意プロファイルには、順序のresult-types interceptors default-interceptor-ref default-action-ref default-class-ref global-results global-exception-mappings action*(すべてのactionを最後に置く)があります.