2012-11-06 43 views
5

Xem xét yêu cầu sau: thông số yêu cầu phải được ràng buộc với đối tượng sử dụng Spring MVC 3.0. Thông số yêu cầu chứa dấu gạch dưới (ví dụ: http://myurl:80/x?param_one=1&param_two=2). Các thông số này phải được ràng buộc với đối tượng sau:Tham số yêu cầu ràng buộc với dấu gạch dưới trong Spring MVC 3.0

class MyObject { 
    private Integer paramOne; 
    private Integer paramTwo; 

    ... 
} 

Bạn sẽ làm như thế nào?

Lưu ý quan trọng: xem xét rằng có thể có một số lượng lớn các tham số và đối tượng như thế này và nó không được coi là thực hành tốt để xác định phương pháp setter trên các đối tượng bao gồm gạch dưới.

+1

Tôi đã thêm câu trả lời cho câu hỏi này, bạn có thể xem bên dưới. Bạn đã tìm ra bất kỳ giải pháp thanh lịch hơn cho điều này hơn những gì tôi đã cung cấp? Tôi rất thích một giải pháp tốt hơn. –

Trả lời

1

Bạn có thể làm bằng @RequestMapping thuộc tính này

@RequestParam(value = "param_One") String paramOne,@RequestParam(value = "param_two") String paramTwo 

Thêm này vào phương pháp chữ ký

Nhưng đối với tốt nhất thực hành tốt hơn của nó để vượt qua cùng một tên biến

+4

Trong khi tôi đánh giá cao câu trả lời, hãy nhớ rằng ở dưới cùng của câu hỏi tôi đã nói: * Cũng xem xét rằng có thể có một số lượng đáng kể các tham số và đối tượng như thế này *. '@ RequestParam' là không khả thi trong trường hợp này, vì nó có nghĩa là chữ ký của phương thức điều khiển với hơn 20 đối số. – tmbrggmn

2

câu trả lời Rajith là cho các phương pháp điều khiển cụ thể và không giải quyết câu hỏi của bạn ban đầu yêu cầu cách liên kết các tham số gạch dưới với đối tượng.

Giải pháp hacky Tôi hiện có tại chỗ là để thực hiện những gì bạn đang thực sự yêu cầu là đặt tên setters tôi trong phong cách này:

public void setProject_ids(List<Long> project_ids) { 

Lưu ý rằng RequestParam không thể áp dụng các phương pháp, và nó không có một hiệu ứng khi áp dụng cho đối số của setter này.

Các vấn đề liên quan