【问题标题】:after create new application annotations does not work创建新应用程序注释后不起作用
【发布时间】: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


    【解决方案1】:

    你应该调用 delegate.call(ctx) 而不是仅仅返回 null。

    public class TestAnnAction extends Action<TestAnn> {
        @Override
        public Result call(Http.Context ctx) throws Throwable
        {       
            System.out.println("called");
            return delegate.call(ctx);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多