Get方式傳參,是典型的URL傳參方式,在URL後面加上變量和所要傳遞的值即可,這種方式比較簡單,下面以示例的形式展示其使用方法
URL:
http://localhost:8080/favccxx/rs/findInspectJobByJobId?jobId=525b8818d52cc6f835bb9e41
Java源代碼:
1
2
3
4
5
6
7
8
|
@GET @Path ( "/findInspectJobByJobId" ) @Produces ({ MediaType.TEXT_XML }) public
String findInspectJobByJobId( @QueryParam ( "jobId" ) String jobId, @Context
HttpServletRequest request) { InspectJob inspectJob = inspectJobService.findOne( "jobId" , jobId); return
JsonUtil.toJson(inspectJob); } |
(二)POST方式傳參
2.1使用URL做變量
將URL最後的位置當做變量去處理,如下所示的000,既是URL的地址,也是需要傳遞的參數。
URL:
http://localhost:8080/favccxx/rs/getInspectJobByJobId/000
Java源代碼:
1
2
3
4
5
6
7
8
|
@POST @Path ( "/getInspectJobByJobId/{jobId}" ) @Produces ({ MediaType.TEXT_XML }) public
String getInspectJobByJobId( @PathParam ( "jobId" ) String jobId, @Context
HttpServletRequest request) { InspectJob inspectJob = inspectJobService.findOne( "jobId" , jobId); return
JsonUtil.toJson(inspectJob); } |
2.2 使用傳統的&連接符傳遞多個參數
一直誤認爲Json向java端傳遞參數,就是使用Json的格式傳遞的,其實並不是,默認情況下,Json向後端傳遞參數仍然是使用=、&連接符傳遞參數的。示例代碼如下:
URL:
http://localhost:8080/favccxx/rs/queryInspectJobById
參數:
jobId=123456&jobName=A任務
Java源代碼:
1
2
3
4
5
6
7
8
9
|
@POST @Path ( "/queryInspectJobById" ) @Produces ({ MediaType.APPLICATION_JSON }) public
String queryInspectJobById( @FormParam ( "jobId" ) String jobId, @FormParam ( "jobName" ) String jobName,
@Context HttpServletRequest request) { System.out.println( "jobId:" + jobId +
",AndjobName is:"
+ jobName) ; InspectJob inspectJob = inspectJobService.findOne( "jobId" , jobId); return
JsonUtil.toJson(inspectJob); } |
2.3 使用Json格式傳遞,使用POJO類解析參數
使用此類方式傳遞參數時,Json格式數據中的變量,必須是Pojo類中的參數,這樣可靈活傳遞參數,後端根據實際需要解析此參數,進行業務處理。
URL:
http://localhost:8080/favccxx/rs/queryInspectJobByJobId
參數:
{
"jobId" : "123456",
"jobName" : "A任務"
}
Java源代碼:
1
2
3
4
5
6
7
8
9
|
@POST @Path ( "/queryInspectJobByJobId" ) @Produces ({ MediaType.APPLICATION_JSON }) public
String queryInspectJobByJobId( @RequestBody
String body, @Context
HttpServletRequest request) { InspectJob inspectJobReq = JsonUtil.fromJson(body, InspectJob. class ); InspectJob inspectJob = inspectJobService.findOne( "jobId" , inspectJobReq.getJobId()); return
JsonUtil.toJson(inspectJob); } |
2.4使用Json格式傳參,使用自定義類QueryMap解參,適合分頁查詢
前端傳參格式不變,後端封裝一個QueryMap類,用來查詢進行分頁相關的數據。
URL:
http://localhost:8080/favccxx/rs/pageQueryJob
參數:
{
"pageIndex" : 2,
"queryMap" : {
"jobId" :"525b8818d52cc6f835bb9e41"
}
}
Java源代碼:
1
2
3
4
5
6
7
8
9
|
@POST @Path ( "/pageQueryJob" ) @Produces ({ MediaType.APPLICATION_JSON }) public
String pageQueryJob( @RequestBody
String body, @Context
HttpServletRequest request){ PageQuery pageQuery= JsonUtil.fromJson(body,PageQuery. class ); String jobId = pageQuery.getQueryMapByKey( "jobId" ).toString(); returnnull; } |