Странная проблема в параметре запроса

#java #string #jersey #jax-rs #query-parameters

#java #строка #джерси #jax-rs #запрос-строка

Вопрос:

Я столкнулся со странной проблемой в параметре запроса. ниже мой URI

 http://localhost:8080/aajaxrs-training/api/dynamicEntity/hello?updateMode=FULLamp;entityName=null
  

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

Я думаю, что вместо этого рассматривается « null «, если null . как это решить. если я назначаю @DefaultValue("null") , то он также принимает его как строку вместо отсутствия значения.

 @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/{dynamicEntityName}")
    public Response sayHello(@PathParam("dynamicEntityName") String 
    dynamicEntityName,@QueryParam("updateMode") String p_update_mode, 
             @QueryParam("entityName") String p_entity_name) throws Exception
    {

       EntityDataRows readSkill = ODADynamicEntityNEW.getDynamicEntities(p_update_mode, p_entity_name);
        return Response.ok(readSkill).build();
    }
  

Я должен обработать этот параметр p_entity_name . если значение не задано, значение по умолчанию должно быть нулевым. пользователь также может передать null или любое другое значение.

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

1. Если вы передадите значение null, оно будет равно null, вместо этого вам не нужно ничего передавать.

2. он принимает значение «null». рассматривая как строку

3. определенно: EntityName= null будет считываться как «null», если вы передадите EntityName=EntityName, это будет как EntityName, либо вы можете выполнить проверку в конечной точке, если entityName= entityName=="null" ? null : entityName;