如何在 Jersey 中动态指定默认值?

Pau*_*bin 6 java rest annotations web-services jersey

我正在使用 Java Jersey 库来创建 RESTful Web 服务。

我正在使用查询参数作为方法。我想为该查询参数指定默认值。如果我指定一个常量字符串,那就没问题了。但是如何将运行时值指定为默认值?

import javax.ws.rs.DefaultValue; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.QueryParam; 
import javax.ws.rs.core.MediaType; 

@Path( "Hello" ) 
public class HelloWorld 
{ 
    private String defaultValue = "Default"; 

    @GET 
    @Produces( MediaType.APPLICATION_XML ) 
    public String greet( @QueryParam( "User" ) @DefaultValue( "defaultValue" )String userName ) 
    { 
        String returnValue = "Hello " + userName; 
        System.out.println( returnValue ); 
        return returnValue; 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

我如何在这里使用变量而不是常量?有可能吗?

Mar*_*ula 3

不,这是不可能的——至少不使用注释。您能详细说明为什么需要这样做吗?也许我可以建议一些替代方法。

  • 我可以想到一种情况,其中日期需要出现在查询参数中,并且应该默认为今天 (7认同)