【发布时间】:2012-06-01 16:08:19
【问题描述】:
我是 Play 和 Scala/Java 的新手。
我从 typesafe.com 安装 typesafe-stack 并创建新项目进行测试:g8 typesafehub/play-scala 在我创建 Java 注释 TestAnn.java 之后:
package ann;
import play.mvc.With;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@With(TestAnnAction.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
@Documented
@Inherited
public @interface TestAnn {
}
和TestAnnAction.javaenter code here:
package ann;
import play.mvc.Http;
import play.mvc.Result;
import play.mvc.Action;
public class TestAnnAction extends Action<TestAnn> {
@Override
public Result call(Http.Context ctx) throws Throwable
{
System.out.println("called");
return null;
}
}
并将其添加到 Application.scala 控制器:
package controllers
import play.api._
import play.api.mvc._
import ann.TestAnn
object Application extends Controller {
@TestAnn
def index = Action {
Ok(views.html.index("Your new application is ready."))
}
}
然后我通过“sbt run”运行应用程序,但在请求索引页面后我没有在终端中看到字符串“调用”。没有错误也没有结果。
我做错了什么?
更新:如果我创建 java 控制器一切正常。 应用程序.java 包控制器;
import play.*;
import play.mvc.*;
import views.html.*;
import ann.TestAnn;
public class Application extends Controller {
@TestAnn
public static Result index() {
return ok(index.render("Your new application is ready."));
}
}
【问题讨论】:
标签: annotations playframework-2.0