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