2011-04-07 10 views
71

के बीच क्या अंतर है मैं रीस्टफुल जर्सी में नौसिखिया हूं। मैं पूछना चाहता हूं कि जर्सी में @PathParam और @QueryParam के बीच क्या अंतर है?@PathParam और @QueryParam

उत्तर

108

? चिह्न के बाद क्वेरी पैरामीटर यूआरएल में जोड़े जाते हैं, जबकि पथ पैरामीटर नियमित यूआरएल का हिस्सा होता है।

tom नीचे दी गई यूआरएल में एक पथ पैरामीटर का मान हो सकता है और वहाँ नाम id और मूल्य 1 साथ एक क्वेरी पैरामीटर है:

http://mydomain.com/tom?id=1

6

@Ruben द्वारा प्रदान की ऊपर स्पष्टीकरण के साथ साथ, मैं जोड़ना चाहता हूं कि आप स्प्रिंग रीस्टफुल कार्यान्वयन में इसके बराबर भी संदर्भित कर सकते हैं।

जेएक्स-आरएस विशिष्टता @ पाथपाराम - एक यूआरआई टेम्पलेट पैरामीटर या संसाधन विधि पैरामीटर, संसाधन वर्ग फ़ील्ड, या संसाधन वर्ग बीन संपत्ति में टेम्पलेट पैरामीटर युक्त पथ खंड का मूल्य बांधता है।

@Path("https://stackoverflow.com/users/{username}") 
public class UserResource { 

     @GET 
     @Produces("text/xml") 
     public String getUser(@PathParam("username") String userName) { 
      ... 
     } 
    } 

@QueryParam - एक संसाधन विधि पैरामीटर, संसाधन वर्ग क्षेत्र या संसाधन वर्ग सेम संपत्ति के लिए एक HTTP क्वेरी पैरामीटर का मान (रों) बांधता है।

यूआरआई: उपयोगकर्ताओं/क्वेरी से = 100

@Path("/users") 
public class UserService { 

    @GET 
    @Path("/query") 
    public Response getUsers(
     @QueryParam("from") int from){ 
}} 

वसंत का उपयोग कर एक ही लक्ष्य को हासिल करने के लिए आपको

@PathVariable (स्प्रिंग) का उपयोग कर सकते == @PathParam (जर्सी, JAX-राज्यसभा) ,

@RequestParam (वसंत) == @QueryParam (जर्सी, जेएक्स-आरएस)

संबंधित मुद्दे