当前位置: 首页 > 面试题库 >

播放2.2.1 Java:相当于播放1.X中的@before过滤器?

庾奇思
2023-03-14
问题内容

我想实现一个 setUserIfPresent
()方法,该方法将用户对象放入Http.Context.current()。args.put(“ user”,user)等上下文中。

应该 每种控制器方法 之前 应用此方法,以便视图可以隐式访问用户。

使用Play1,我创建了一个 BaseController ,它 所有请求(@Before过滤器) 之前 调用
此方法 扩展 了该请求中的所有其他控制器。

如何使用Java API在play2中实现类似的功能?

似乎对于Scala来说有些东西,但对于Java来说呢?http://www.playframework.com/documentation/2.2.x/ScalaHttpFilters

干杯


问题答案:

尽管您 可以 使用“传统”
webapp框架方式使用过滤器(或Interceptors),但Play首选方式似乎肯定是组成自定义Action方法;请参阅有关动作组成的文档。

如果遵循其样式,则将定义一个新的Action实现,如下所示:

public class UserContextInjectingAction extends play.mvc.Action.Simple {

    public F.Promise<SimpleResult> call(Http.Context ctx) throws Throwable {
        Logger.info("Injecting user data into context " + ctx);
        injectUser(ctx); // Written by you
        return delegate.call(ctx);
    }

}

您最终将获得如下所示的控制器代码:

@With(UserContextInjectingAction.class)
public static Result showHomePage() {
    return ok("Welcome");
}


 类似资料:
  • 我想玩。iPhone应用程序中的mpd文件,为此我尝试了VLC播放器,但它没有按照预期工作,播放视频花费了太多时间。我还有其他选择吗。像Android中的exoplayer这样的mpd文件。 我已经为此目的实现了VLC媒体播放器,但现在我正在寻找另一种选择。如果有人对此有任何想法,请帮助。

  • 由于小程序里只能使用小程序提供的video组件,所以Mudu.Room.Player仅提供了对用户播放时长的统计功能。 只需要在小程序的事件处理中执行相应函数即可。 video组件bindplay时调用 Mudu.Room.Player.OnPlay() video组件bindpause时调用 Mudu.Room.Player.OnPause() video组件bindended时调用 Mud

  • Mudu.Player 播放器组件(muduPlayer 新版) 升级提示 在 初始化播放器 和使用 player.load() 方法时新增isLive参数(默认为false) 该参数用于控制播放器的ui展示,当为false时 显示进度条 和 时间进度 ;当为true时 隐藏进度信息 并 显示为直播状态 初始化播放器 var isChannelLiving = !!Mudu.Room.GetLiv

  • 我正在开发一个包含一些音频播放器的RecyclerView的应用程序。应用程序将下载。3gp文件(如果尚未下载)。 当我单击playAudio按钮时,音频未被播放。 这是我的适配器代码: 我怎样才能解决这个问题?

  • 我已经创建了一个非常简单和基本的html5音频播放器,实际上不超过: 但我面临两个问题,这个简单的音频标签在Chrome上可以使用,但在Safari 7上不行;第二个问题是,它不能在我的iPhone iOS7和HTC Android 2.3上使用

  • 我正在用JavaFX开发我认为应该是一个简单的任务的media player,它将在用户默认的音乐文件夹路径(使用fedora)中播放存储在本地硬盘驱动器上的mp3文件。我可以很好地从命令行播放所有mp3文件,但当我尝试通过javafx.scene.media库播放时,javafx一直告诉我mp3是一种受支持的媒体类型。我已经下载了我能找到的每一个图书馆,但没有用。下面是一个实际尝试打开文件并播放