@QueryParam正则表达式

时间:2011-10-06 09:22:27

标签: java regex rest jersey

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

的方法

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

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

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

3 个答案:

答案 0 :(得分:3)

您无法指定正则表达式。但是,您可以定义自定义Java类型来表示该查询参数,并实现从String到该类型的转换 - 请参阅http://jersey.java.net/nonav/documentation/latest/jax-rs.html#d4e255(示例2.15)。

答案 1 :(得分:3)

我认为你不能用QueryParam做到这一点,但你可以直接得到参数列表:

@GET
public String get(@Context UriInfo ui) {
    MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
}

并迭代查找与正则表达式匹配的键。

答案 2 :(得分:0)

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

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