Как я могу динамически указывать значение по умолчанию в Джерси?

#java #web-services #rest #annotations #jersey

#java #веб-сервисы #остальное #аннотации #джерси

Вопрос:

Я использую библиотеку Java Jersey для создания веб-службы RESTful.

Я использую параметр запроса для метода. Я хочу указать значение по умолчанию для этого параметра запроса. Если я укажу постоянную строку, тогда все в порядке. Но как я могу указать значение времени выполнения в качестве значения по умолчанию?

 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; 
    } 
} 
  

Как я могу использовать здесь переменную вместо константы? Возможно ли это вообще?

Ответ №1:

Нет, это невозможно — по крайней мере, без использования аннотации. Можете ли вы подробнее рассказать о том, зачем вам это нужно? Может быть, я смогу предложить какой-нибудь альтернативный подход.

Комментарии:

1. Я могу представить случай, когда дата должна быть указана в параметре запроса и должна быть установлена по умолчанию на сегодняшний день

2. Это мой вариант использования

Ответ №2:

Не уверен, что это то, что вы искали, но пытались ли вы сделать значение по умолчанию окончательным?

 final String defaultValue = "Default"; 
  

Это работает для меня.