2011-09-20 27 views
5

@RequestParamアノテーションを使用してリクエストパラメータを取得し、これを使用して値をDBに挿入します。 @RequestParamアノテーションを使用して読み取られている値をユーザーが入力するためのテキストフィールドを含む同じページにリダイレクトするようにコントローラを設定しました。私は、テキストフィールドに値を入力し、[送信]をクリックします後@RequestParamを使用すると、Spring 3でエラーが発生する

はしかし、それは

要求処理が失敗し、このエラーがスローされます。ネストされた例外はjava.lang.IllegalArgumentExceptionです:引数型[java.lang.String]の名前は使用できません。パラメータ名情報もクラスファイルに見つかりません。

私はSpring 3の初心者で、エラーを理解できません。誰でも同じ光を当ててください。あなたのハンドラメソッドのパラメータにリクエストパラメータの値を注入するために

事前のおかげで、 のVivek

+0

どのバージョンのSpring MVCですか?アノテーションを付けてメソッドのシグネチャを表示できますか? – sinuhepop

+0

私はSpring MVCバージョン3を使用していますが、メソッドシグネチャは です。 'public void insertRecords(@RequestParam String id、@RequestParam String name、@RequestParam String addr)' – Vivek

答えて

8

は、いずれか、次のいずれかの

  1. リクエストパラメータの名前満足するようにしてくださいメソッドのパラメータの名前と一致する必要があります。例: 続き は、メソッドのパラメータと一致しない場合はリクエストパラメータ名を明示的に指定する必要があり

    public String goToStep(@RequestParam String studentName)

  2. studentName

    メソッドのパラメータに「studentName」という名前のリクエストパラメータを注入します。以下はstudentNameに「nameOfStudent」リクエストパラメータを注入します:あなたの問題が解決しないし続けた場合

    public String goToStep(@RequestParam("nameOfStudent") String studentName)

あなたのハンドラメソッドのコードを投稿してください。

+0

私はこのガイドラインに従いました。したがって、すべてのパラメータ名は正しい。以下にハンドラメソッドのコードを記載しています。 'public void insertRecords(@RequestParam String id、@RequestParam String name、@RequestParam String addr)' であり、対応するjspはメソッドパラメータの命名規則に従って各テキストフィールドのid属性を持っています。 – Vivek

+0

リクエストパラメータにサーブレットレイヤからアクセスできるかどうかを確認します。このような: 'code'公共ボイドinsertRecords(@RequestParam文字列ID、@RequestParam文字列名、@RequestParamストリングADDR、HttpServletRequestのリクエスト) { のSystem.out.println(request.getParameter( "名")); //生産中に使用しない } 'code' 「null」と表示された場合、JSPはパラメータを送信しておらず、関連するJSPコードを投稿すると便利になります。あなたが期待している値を出力するならば、コントローラに問題があることがわかります。 –

3

私は数日前に同様の問題が発生したため、使用しているバージョンを尋ねました。私はSpring 3.1.0.M2を使用していましたが、プロキシの@Controllerで@PathVariableを使用していたときにも同じ例外が発生しました。

resolved known bugによって引き起こされました。 3.0.6に切り替えるか、夜間ビルド3.1.0.BUILD-SNAPSHOTを試してみてください。もちろん、後者のオプションは運用環境には推奨されません。

+0

wwwoooowwwww ....私はこれを確認し、スペースバークをここで更新します。情報のおかげで... :) – Vivek

+0

ありがとう! 私はこのあいまいなバグを探していましたが、あなたの投稿ではない場合、私はそれを解決しようと多くの時間を費やしました:) – Leonti

関連する問題