本文主要研究的是@pathparam和@queryparam區(qū)別問(wèn)題,具體如下。
問(wèn)題
今天調(diào)試一個(gè)上傳功能,客戶端手持機(jī)發(fā)送數(shù)據(jù),在url中附加一個(gè)參數(shù),后臺(tái)用@pathparam接收,但是報(bào)錯(cuò),無(wú)法獲取這個(gè)參數(shù)。
url:http://192.168.1.3/web1_service/convert/vict_hj1000?unit=160106
代碼
1
2
3
4
|
java color1">@path ( "/vict_hj1000" ) @post @consumes (mediatype.multipart_form_data) public response createvicthj1000detect( @formdataparam ( "name0" ) inputstream uploadedinputstream, @pathparam ( "unit" ) long unit) throws jsonexception { |
也就是說(shuō),這個(gè)unit參數(shù)獲取不到,怎么回事呢?
原因解釋
網(wǎng)上查了一遍,找到了原因,是url中參數(shù)的寫(xiě)法不對(duì),導(dǎo)致后臺(tái)的@pathparam無(wú)法獲取,下面列出@pathparam和@queryparam的區(qū)別:
1. @pathparam ,url中直接在斜杠后面添加參數(shù)值, 例如:www.a.com/student/001 ;
2. @queryparam ,url中在后面添加【鍵值對(duì)】形式的參數(shù),例如:www.a.com/student?id=001 ;
我的應(yīng)用里面,url用的是鍵值對(duì)形式的參數(shù),而后臺(tái)用的是@pathparam,不匹配,因此無(wú)法獲取。
解決辦法就是修改url,取消鍵值對(duì),在斜杠后直接加參數(shù)值,改成:
http://192.168.1.3/web1_service/convert/vict_hj1000/160106
并且后臺(tái)修改@path注解,改為:
1
|
@path ( "/vict_hj1000/{unit}" ) |
問(wèn)題解決!
總結(jié)
以上就是本文關(guān)于@pathparam和@queryparam區(qū)別簡(jiǎn)析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
原文鏈接:http://blog.csdn.net/zhouyingge1104/article/details/51034970