2012-11-06 18 views
5

リクエストパラメータは、Spring MVC 3.0を使用してオブジェクトにバインドする必要があります。リクエストパラメータにはアンダースコア(たとえば、)が含まれています。これらのパラメータは、次のオブジェクトにバインドする必要があります。Spring MVC 3.0でアンダースコアを使用してリクエストパラメータをバインドする

class MyObject { 
    private Integer paramOne; 
    private Integer paramTwo; 

    ... 
} 

これはどうやってやりますか?

重要なお知らせ:このようなパラメータとオブジェクトが相当量存在する可能性があり、アンダースコアを含むオブジェクトに対してセッターメソッドを定義することは適切ではないと考えてください。

+1

私はこの質問への回答を追加しました。あなたは以下を見ることができます。あなたが私が提供したものよりもこれ以上の洗練されたソリューションを見つけることに終わったのですか?私はより良い解決策を自分自身が愛するだろう。 –

答えて

1

あなたは、このメソッドのシグネチャ

にこれを追加@RequestMapping属性

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

を使用して行うことができます。しかし、ベストプラクティスのためのよりよい同じ変数名を渡す

+4

私は答えを高く評価しますが、私が述べた質問の最下部にあることを覚えておいてください。*このようなパラメータやオブジェクトが相当量存在する可能性があると考えてください。 '@ RequestParam'は20以上の引数を持つコントローラメソッドのシグネチャを意味するので、この場合は実行できません。 – tmbrggmn

2

Rajithの答えは、コントローラのメソッドのためにあります具体的には、アンダースコアのパラメータをオブジェクトにバインドする方法を最初に尋ねる質問に対処していません。

私は現在の場所に持ってハックソリューションは、あなたが実際に求めているものを達成することであるが、このスタイルで私のセッターに名前を付けることです:RequestParamはメソッドに適用することができない、それは持っていません

public void setProject_ids(List<Long> project_ids) { 

注意このセッターの引数に適用されたときの効果。

関連する問題