Как перехватить навигацию между Struts 2 Actions? - PullRequest
0 голосов
/ 13 апреля 2011

Я использую Struts 2. Можно ли идентифицировать и перехватывать, когда пользователь выполняет другое действие?

Мне нужно определить, собирается ли пользователь выполнить действие, отличное от того, которым он является в настоящее время.на.

1 Ответ

1 голос
/ 16 апреля 2011

Это легко. Просто используйте перехватчик Struts 2.

public class TestInterceptor extends AbstractInterceptor {

    public String intercept(ActionInvocation invocation) throws Exception {
        // Do checking here, get user from session or from parameter is OK.
        // Example:
        // string returned below will be redirected to result of Struts 2 action
        String roleName = user.getRole().getName();
        if ("admin".equals(roleName) {
            return "admin";
        } else if("user".equals(roleName)) {
            return "user";
        }

        // This means if roleName is not admin or user, the action will be invoked
        return invocation.invoke();
    }

}

Затем просто добавьте вышеупомянутый перехватчик в конфигурации struts.xml . Я думаю, это то, что вы хотите, верно? Я всегда использую этот перехватчик.

См. http://struts.apache.org/2.x/docs/interceptors.html или http://www.benmccann.com/blog/struts-2-tutorial-interceptors/ для образцов.

...