2012-08-03 70 views
2

我正在開發一個使用彈簧MVC的web應用程序。我將以下格式的參數從JSP傳遞到彈簧控制器。就像我必須要通過兩個參數,因此我做從JSP發送參數到彈簧控制器

<a href="/spring.html?data1=<%=data1 %>?data2=<%=data2 %>"> Hello </a> 

我的假設是,在春天控制器,我可以接收輸出爲以下

data1= request.getAttribute("data1"); 
data2= request.getAttribute("data2"); 

這是要通過正確的方法參數。我已經幹了很多次我的代碼仍然是我的頁面給空指針,所以我懷疑這是否是因爲這一點。你可以請讓我知道這件事。謝謝。

回答

3

至少有2個技術失誤:

  1. 你應該得到的請求參數請求參數,而不是請求屬性。

    data1 = request.getParameter("data1"); 
    data2 = request.getParameter("data2"); 
    
  2. 請求參數分離器是&,不??是請求查詢字符串分隔符。

    <a href="/spring.html?data1=<%=data1 %>&data2=<%=data2 %>"> Hello </a> 
    

還有順便說一下第三個錯誤,但是這更像是一個設計問題。 Scriptlets are discouraged since a decade

+0

非常感謝您的幫助..我會嘗試這個 – user1562262 2012-08-03 04:53:16

+0

在此,我們怎麼能傳遞對象,問題是我在使用request.getParameter時無法輸入大小寫 – user1562262 2012-08-03 05:46:31

+0

如果數據1和數據2是對象,那麼如何在我的控制器中鍵入cast – user1562262 2012-08-03 05:52:36

0

如果是Spring MVC控制器,那麼你不需要撥打request.getParameter。你可以定義你的方法是這樣和參數將自動填充的MVC框架:

@RequestMapping(value="/myRequest", method=RequestMethod.GET) 
@ResponseBody 
public String handleMyRequest(
     @RequestParam String data1, 
     @RequestParam String data2 
     ) { 
    // your handler code here 
    // you will have data1 and data2 automatically populated by Spring MVC 
} 
+0

您可以分享相應的jsp,以便如何將對象從此處傳遞到此處。謝謝。 – user1562262 2012-08-03 05:58:54

+0

您的JSP可以有一個簡單的鏈接,如:' Hello'我建議讀一點關於[Spring MVC教程](http://static.springsource.org/docs/Spring-MVC-step-by-step/) – anubhava 2012-08-03 08:55:11