gpt4 book ai didi

java - 向哪个 Controller 扮演代表?

转载 作者:太空宇宙 更新时间:2023-11-04 07:39:51 25 4
gpt4 key购买 nike

我可以找出哪个 Controller 负责代理吗?

在这种情况下:

public class Menus extends Action.Simple {

public Result call(Http.Context ctx) throws Throwable {
ctx.args.put("menus", Menu.find.all());
return delegate.call(ctx);
}

public static List<Menu> current() {
return (List<Menu>)Http.Context.current().args.get("menus");
}
}

我可以在调用方法中找出将使用哪个 Controller 吗?

最佳答案

您可以通过为您的 Action 组合编写自定义注释来做到这一点。请参阅下面文档页面上标记为定义自定义操作注释的部分。

http://www.playframework.com/documentation/2.1.1/JavaActionsComposition

基本上,在注释界面上,您可以定义一个参数来注释 Controller 。也许只是一个简单的字符串,然后您传入 Controller 类名。

@With(MenusAction.class)
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Menus {
String value();
}

当您注释 Controller 或操作方法时,您会传入 Controller 名称值:

@Menus("MyController")
public static Result index() {
return ok();
}

所以现在在您的 Action 类中,您可以读取该值并执行您想要执行的任何逻辑。

public class MenusAction extends Action<Menus> {
public Result call(Http.Context ctx) {
if("MyController".equals(configuration.value)) {
// do something
}

ctx.args.put("menus", Menu.find.all());
return delegate.call(ctx);
}
}

关于java - 向哪个 Controller 扮演代表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com