我目前正在使用 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但我不明白如何通过简单的注释来改变动作的行为?
谢谢