मैं इसे उत्तर के रूप में सबमिट नहीं कर रहा हूं क्योंकि यह currently accepted answer पर केवल एक बढ़त मामला है जो मैंने भी उपयोग किया है। मेरे मामले में (जर्सी 1.1 9) /list/{taskid:.+}
शून्य चर पैरामीटर के किनारे के मामले के लिए काम नहीं करेगा। RegEx को /list/{taskid:.*}
में बदलकर उस पर ध्यान दिया गया। this article देखें (जो लागू होने लगते हैं)।
इसके अलावा, *
(बजाय +
) को प्रमुखता सूचक कराने के लिए regexp बदलते पर मैं भी रिक्त स्ट्रिंग के मामले के साथ प्रोग्राम के रूप में निपटने के लिए के रूप में मैं एक List<String>
में List<PathSegment>
अनुवाद होगा (यह मेरा डीबी पहुँच में पारित करने के लिए किया था कोड)।
कारण मैं PathSegment
से String
से अनुवाद कर रहा हूं कि मैं अपने डेटा एक्सेस लेयर कोड को प्रदूषित करने के लिए javax.ws.rs.core
पैकेज से कक्षा नहीं चाहता था।
यहां एक संपूर्ण उदाहरण है:
@Path("/listDirs/{dirs:.*}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response listDirs(@PathParam("dirs") List<PathSegment> pathSegments) {
List<String> dirs = new ArrayList<>();
for (PathSegment pathSegment: pathSegments) {
String path = pathSegment.getPath();
if ((path!=null) && (!path.trim().equals("")))
dirs.add(pathSegment.getPath());
}
List<String> valueFromDB = db.doSomeQuery(dirs);
// construct JSON response object ...
}
स्रोत
2016-05-20 09:04:17
धन्यवाद, यह शायद सबसे करीब मुझे लगता है कि करने के लिए तो अब मैं बस वहाँ regexp कि संख्या से मेल खाता है और example.com/ws/list के लिए स्लैश लगाने की जरूरत है मिलेगा/1 या example.com/ws/list/1/2/3/4/5/6 – zeratul021