具有默认值的Java JAX-RS自定义参数
假设我有这个(这只是一个样本): 用户是具有默认值的Java JAX-RS自定义参数,java,jax-ws,resteasy,Java,Jax Ws,Resteasy,假设我有这个(这只是一个样本): 用户是 class User{ ... public static User valueOf(String user){ if(user == null) return DEFAULT_USER; return dao.findById(user); } } 如果我做了/api/address?user=amir一切都正常,但是如果我不为用户提供值,那么我希望使用默认用户。但这并不是真正意义上的valueOf。有办法解决这个问题吗?JA
class User{
...
public static User valueOf(String user){
if(user == null) return DEFAULT_USER;
return dao.findById(user);
}
}
如果我做了/api/address?user=amir一切都正常,但是如果我不为用户提供值,那么我希望使用默认用户。但这并不是真正意义上的valueOf。有办法解决这个问题吗?JAX-RS有@annotation:
@QueryParam("user") @DefaultValue("__DEFAULT")
class User{
...
public static User valueOf(String user){
if(user == null||"__DEFAULT".equals(user) return DEFAULT_USER;
return dao.findById(user);
}
}
这对我有什么帮助?如果缺少用户,则我需要默认用户。您的代码默认使用“amir”,这就是我现在正在做的。我希望有更好的解决办法。但我想这样就可以了。根据您提供的代码和“DefaultValue”的文档,如果用户不在URL上,则会将其分配为null。您给人的印象是,您希望使用参数(String)null调用valueOf方法,这不是省略“DefaultValue”的方式。
@QueryParam("user") @DefaultValue("__DEFAULT")
class User{
...
public static User valueOf(String user){
if(user == null||"__DEFAULT".equals(user) return DEFAULT_USER;
return dao.findById(user);
}
}