2013-07-29 38 views
16

Tôi có một URL tham chiếu như thế này:Get Values ​​Query String trong Spring MVC điều khiển

http://myUrl.com?page=thisPage&gotoUrl=https://yahoo.com?gotoPage

Làm thế nào để tôi nhận được giá trị của "trang" và "gotoUrl" trong điều khiển Mùa xuân của tôi?

Tôi muốn lưu trữ các giá trị này dưới dạng biến, vì vậy tôi có thể sử dụng lại chúng sau này.

Cảm ơn,

+1

Hãy xem chú thích @RequestParam. – Aurand

+1

Bạn có thực sự muốn nói "referer" không? Nếu vậy câu trả lời được chấp nhận là sai. –

+0

Có lẽ bạn nên mã hóa URL giá trị của 'gotoUrl' (mặc dù tôi không chắc chắn nó sẽ có vấn đề về mặt chức năng trong ví dụ cụ thể này). –

Trả lời

9

Bạn có thể sử dụng phương pháp getParameter() từ giao diện HttpServletRequest.

Ví dụ;

public void getMeThoseParams(HttpServletRequest request){ 
    String page = request.getParameter("page"); 
    String goToURL = request.getParameter("gotoUrl"); 
} 
+1

Điều này có ý nghĩa, nếu tôi muốn chuyển yêu cầu làm đối số. Nhưng có cách nào để lấy các tham số, nếu tôi không muốn vượt qua HttpServletRequest như một đối số để hành động điều khiển của tôi? – Jake

+10

Trong khi câu trả lời này là chính xác về mặt kỹ thuật, nó không phải là cách được đề nghị để làm điều đó với Spring, @ Affe của câu trả lời là nhiều hơn đến điểm. – Akshay

+0

@AkshaySinghal trừ khi bạn không biết các tham số trước nhưng bạn cần một cách để xử lý chúng - sau đó bạn có thể sử dụng 'request.getParameterNames()' hoặc 'request.getParameterMap()' –

81

Trong SpringMVC bạn có thể chỉ định giá trị từ chuỗi truy vấn được phân tích cú pháp và chuyển thành chú thích phương pháp với chú thích @RequestParam.

public ModelAndView getPage(
    @RequestParam(value="page", required=false) String page, 
    @RequestParam(value="gotoUrl", required = false) String gotoUrl) { 
} 
-2

Lấy QueryString trong Spring MVC điều khiển

Đây là giải pháp cổng thông tin Liferay cụ thể, và nó hoạt động.

Query String Ví dụ: ?reportTypeId=1&reportSeqNo=391

Để có được giá trị của reportSeqNo trong Liferay Portal, chúng tôi cần phải nhận được Yêu cầu Servlet gốc.

String reportSeq = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(renderRequest)).getParameter("reportSeqNo"); 
Các vấn đề liên quan