0

我目前正在使用 Play2 开发 Web 服务,但我遇到了动作组合的问题。

这是我的网络服务可用的方法之一:

@Authenticated(Secured.class)
@BodyParser.Of(BodyParser.Json.class)
public static Result createObject() {
    try {
        JsonNode json = request().body().asJson();

        // Retrieve user from request
        User user;
        try {
            user = getUserFromRequest();
        }
        catch (BeanNotFoundException e) {
            return badRequest(Messages.get("userNotFound"));
        }

        // Retrieve owner from user
        Owner owner;
        try {
            owner = getOwnerFromUser(user);
        }
        catch (BeanNotFoundException e) {
            return badRequest(Messages.get("ownerNotFound"));
        }

        // Create the object
        // Here is the code using User and Owner previously found
    }
    catch (BeanValidationException e) {
        return badRequest(JsonUtils.beanValidationMessagesToJson(e));
    }
}

问题是我必须重复代码以在我的 Web 服务的每个方法中检索用户和所有者。

我如何使用动作组合来做到这一点,因为我在我的主要动作中间调用方法?我阅读了文档http://www.playframework.com/documentation/2.1.1/JavaActionsComposition但我不明白如何通过简单的注释来改变动作的行为?

谢谢

4

1 回答 1

0

这里有 Play Java 动作组合的示例:

https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/play-java/app/controllers/Application.java

于 2013-05-26T23:31:03.943 回答