2015-09-03 17 views
11

Để hiểu biết của tôi cả hai đều có cùng mục đích. Ngoại trừ một thực tế là @PathVariable là từ khung mùa xuân và @PathParam là từ Javax.ws.rs. Bất kỳ thông tin chi tiết về điều này?Sự khác biệt giữa @PathParam và @PathVariable

+2

thể trùng lặp của [@RequestParam vs @PathVariable] (http://stackoverflow.com/questions/13715811/requestparam-vs-pathvariable) –

+5

Bạn đã trả lời câu hỏi của riêng bạn . Sự khác biệt đó có đủ lớn cho bạn không? –

+0

Suresh, tôi thích câu trả lời của bạn tốt hơn câu trả lời dưới đây.Tôi nghĩ có lẽ điều quan trọng cần lưu ý là 1) Spring danh dự PathParam cũng như PathVariable của nó, và 2) bất cứ khi nào có thể PathParam của Java là thích hợp hơn (vì bạn có thể thay thế Spring một ngày bằng công nghệ khác, nhưng miễn là bạn đang làm việc với Java ...) – inor

Trả lời

3

@PathParam là chú thích tham số cho phép bạn ánh xạ phân đoạn đường dẫn URI biến vào cuộc gọi phương thức của mình.

@Path("/library") 
public class Library { 

    @GET 
    @Path("/book/{isbn}") 
    public String getBook(@PathParam("isbn") String id) { 
     // search my database and get a string representation and return it 
    } 
} 

để biết thêm chi tiết: JBoss DOCS

Trong Spring MVC bạn có thể sử dụng @PathVariable chú thích trên một đối số phương pháp để ràng buộc nó với giá trị của một URI mẫu biến để biết thêm chi tiết: SPRING DOCS

+1

nói cách khác, nó giống nhau, nhưng '@ PathVariable' tương đương với được sử dụng trong Spring (?) – Blauhirn

1

@PathParam là chú thích tham số cho phép bạn ánh xạ các đoạn đường dẫn URI biến vào cuộc gọi phương thức của bạn.

@PathVariable là để có được một số giữ chỗ từ URI (Spring gọi nó là một mẫu URI)

-2

@PathVariable

@PathVariable nó được chú thích, được sử dụng trong các URI cho các yêu cầu gửi đến . Hãy xem dưới đây

http://localhost:8080/restcalls/101?id=10&name=xyz

@RequestParam

@RequestParam chú thích được sử dụng để truy cập vào các giá trị tham số truy vấn từ yêu cầu.

public String getRestCalls(
@RequestParam(value="id", required=true) int id, 
@RequestParam(value="name", required=true) String name){...} 

Note

bất cứ điều gì chúng tôi đang yêu cầu với phần còn lại gọi tức là, @PathVariable

bất cứ điều gì chúng ta đang tiếp cận để viết các truy vấn tức, @RequestParam

+0

mặc dù câu hỏi của tôi là sự khác biệt giữa pathvariable và pathparam. Cảm ơn bạn đã trả lời . – suresh

1

PathParam:

Để chỉ định giá trị thông số URI cho đối số phương thức.

Ví dụ,

http://localhost:8080/books?isbn=1234 

@GetMapping("/books/") 
    public Book getBookDetails(@PathParam("isbn") String isbn) { 

PathVariable:.

Để gán giá trị giữ chỗ URI để đối số phương pháp.

Ví dụ.,

http://localhost:8080/books/1234 

@GetMapping("/books/{isbn}") 
    public Book getBook(@PathVariable("isbn") String isbn) { 
Các vấn đề liên quan