呐些過往 2016-03-12 02:56 采纳率: 33.3%
浏览 516

用户身份验证之后怎么自动调用某个功能的action

A工程和B工程,A工程通过token进行验证之后怎么自动调用B工程的某个功能的action,前台使用EXT插件

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-05 01:26
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Struts2中,你可以使用ActionContext对象来跟踪请求和响应。当用户身份验证后,你可以将一些参数传递给ActionContext,并在相应的Action中处理这些参数。

    以下是一个简单的例子:

    // 在Action类中
    public class MyAction {
        public String myMethod() throws Exception {
            ActionContext.getContext().put("userId", "123");
            return SUCCESS;
        }
    }
    

    在这个例子中,我们创建了一个名为MyAction的动作,它有一个方法叫做myMethod。在myMethod的方法体中,我们将一个字符串"123"放入了ActionContext的上下文(context)中,这个值可以被后续的动作或者控制器使用。

    然后,在你的控制器或拦截器中,你可以在beforeHandle()方法中获取到ActionContext的上下文,并从中提取出我们需要的信息。

    例如,如果你想要在一个控制器中调用另一个控制器的功能,你可以这样做:

    @Controller
    public class MyController {
        @Autowired
        private MyAction myAction;
    
        // ...其他控制器代码...
    
        @RequestMapping("/someFunction")
        public String someFunction() {
            String userId = ActionContext.getContext().get("userId");
            if (userId == null) {
                return ERROR;
            } else {
                return redirect(myAction.myMethod());
            }
        }
    }
    

    在这个例子中,我们在MyController中定义了一个someFunction方法,它会根据userId的值跳转到myAction.myMethod方法。如果userId为空,那么返回错误页面;否则,返回重定向的目标URL。

    这样,每当用户登录并认证成功时,系统就会自动调用B工程的某个功能的action。

    评论

报告相同问题?