2

SpringMVCを使用してWebアプリを開発しています。以下の形式でJSPからSpringControllerにパラメータを渡します。2つのパラメータを渡さなければならないので、

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

私の仮定は、スプリングコントローラーでは、次のように出力を受け取ることができるということです

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

これはパラメータを渡す正しい方法ですか。コードを何度もドライランしましたが、ページにnullポインターが表示されるので、これが原因かどうかは疑問です。これについて教えてください。ありがとうございました。

4

2 に答える 2

3

少なくとも2つの技術的な間違いがあります:

  1. リクエストパラメータは、リクエスト属性としてではなく、リクエストパラメータとして取得する必要があります。

    data1 = request.getParameter("data1");
    data2 = request.getParameter("data2");
    
  2. リクエストパラメータの区切り文字は&、ではなく?です。は?リクエストクエリ文字列の区切り文字です。

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

ちなみに3つ目の間違いがありますが、それは設計上の問題です。スクリプトレットは10年以来推奨されていません

于 2012-08-03T04:50:40.397 に答える
0

Spring MVC コントローラーの場合、 call を行う必要はありません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
}
于 2012-08-03T04:58:23.003 に答える