Java @QueryParam正则表达式

Java @QueryParam正则表达式,java,regex,rest,jersey,Java,Regex,Rest,Jersey,我正在使用Jersey进行Rest,并且有一个接受@QueryParam. 但是,用户可以像这样发送@QueryParam.: contractName其中是0-155之间的数字 如何在QueryParam中定义它(如regex表达式)?您不能指定regexp。但是,您可以定义一个自定义Java类型来表示该查询参数,并实现您自己从字符串到该类型的转换-请参见(示例2.15)。我认为您不能使用QueryParam进行转换,但您可以直接获得参数列表: @GET public String get(@

我正在使用Jersey进行Rest,并且有一个接受
@QueryParam.

但是,用户可以像这样发送
@QueryParam.

contractName
其中
是0-155之间的数字


如何在QueryParam中定义它(如regex表达式)?

您不能指定regexp。但是,您可以定义一个自定义Java类型来表示该查询参数,并实现您自己从字符串到该类型的转换-请参见(示例2.15)。

我认为您不能使用QueryParam进行转换,但您可以直接获得参数列表:

@GET
public String get(@Context UriInfo ui) {
    MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
}
@GET
获取公共字符串(@Context-UriInfo-ui){
多值Map queryParams=ui.getQueryParameters();
}
然后遍历它,查找与正则表达式匹配的键

@GET
public String get (@QueryParam(value="param") String param){

 boolean test =testYourParamWithNativeRegexpTools(param);
 if( test==false)return 400;
 else //work
.....
}