在Controller中播放2个非Action方法

时间:2012-06-01 08:38:04

标签: playframework-2.0

如何在Play 2控制器上创建非动作功能?有没有办法为控制器创建实用程序功能?

public class Register extends Controller {
  @BodyParser.Of(BodyParser.FormUrlEncoded.class)
  public static Result registerByForm() {
      .......

  }

  // this is utility function
  private static User getFacebookIdByToken(String fbToken) {
     FacebookClient facebookClient = new DefaultFacebookClient(fbToken);
     User user = facebookClient.fetchObject("me", User.class);
     return user;
  }
}

3 个答案:

答案 0 :(得分:3)

是的,你可以按照你展示的方式。无论如何,我认为该方法更好的地方是User类。

答案 1 :(得分:2)

在Play 1.0中,无法区分static void foo()非动作和动作,因此@Util注释。我的猜测是Play 2.0可以根据返回类型区分一个方法是否是一个动作,如果你因为某种原因想要创建一个Result返回方法,那么这只会让你陷入困境在Controller中,不是行动。

答案 2 :(得分:-1)

在Play 1.2中,您可以将访问修饰符从公共更改为私有This post解释了更多详情