java – 如何处理CXF restful webservices中的可选参数

我已经按照此链接构建了CXF Restful webservices
url link.

如果假设我的网址如下所述:

http://localhost:8080/CxfRestService/rest/employeeservices/getemployeedetail?employeeId=1&empProfession=software

这里,“empProfession”参数对我来说是可选的.

所以,尽管如果我省略了该参数并点击下面的url,我应该得到所需的响应. HTTP://本地主机:8080 / CxfRestService /休息/ employeeservices / getemployeedetail EMPLOYEEID = 1

任何人都可以帮我解决如何在CXF Restful Web服务中使用可选参数.

最佳答案 选项1 – 声明参数并检查是否!= null

 public Response getEmployeeDetail(@QueryParam("employeeId") String employeeId, @QueryParam("empProfession") String empProfession);

选项2 – 声明en对象以接收所有已知参数

 public Response getEmployeeDetail(@QueryParam("") EmployeeFilter filter) ;

 public class EmployeeFilter {
    public void setEmployeeId(String id) {...}
    public void setEmpProfession(String p) {...}  
 }

选项3 – 不要声明参数并解析URI.如果您可以接受非固定参数,则此选项可能很有用

 public Response getEmployeeDetail( @Context UriInfo uriInfo) {
      MultivaluedMap<String, String> params = uriInfo.getQueryParameters();
      String employeeId = params.getFirst("employeeId");
      String empProfession = params.getFirst("empProfession");
点赞