1
Play 및 Scala/Java의 새로운 기능입니다. 이 작동하지 않습니다.
나는 typesafe.com에서 형태 보증 된 스택을 설치하고 테스트를 위해 새 프로젝트를 만들 : G8 typesafehub/I는 자바 주석 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.java enter 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"으로 응용 프로그램을 실행하지만 요청 색인 페이지 다음에 터미널에서 "called"문자열을 보지 못했습니다. 오류가없고 결과가 없습니다.
내가 뭘 잘못 했니?
업데이트 : Java 컨트롤러를 만들면 정상적으로 작동합니다. Application.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."));
}
}
아직 해결되지 않았습니까? – angelokh