我正在使用Struts 2.当用户导航时,是否可以识别并拦截另一个Action?
我需要确定用户是否要使用与当前用户不同的操作。
答案 0 :(得分:1)
这很容易。只需使用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/了解样本。