2012-03-30 68 views
1

我新的播放和Scala/Java的。後創建新的應用程序註釋不起作用

我從typesafe.com安裝類型安全的堆棧和測試創建新項目:G8 typesafehub /播放斯卡拉 後,我創建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.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運行」的應用程序,但我不看到字符串「稱爲」後終端請求索引頁。沒有錯誤,沒有結果。

我做什麼了?

更新:如果我創建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.")); 
    } 
} 
+0

沒有ü解決了嗎? – angelokh 2012-06-01 07:31:35

回答

0

您應該調用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); 
    } 
}