2013-03-15 5 views
7

httpリクエストの各パラメータをSpringがどのように分割しているのか疑問に思っています。 は、一例では、私は、このメソッドの定義があります。Spring MVC @RequestParam値がURIから期待通りに抽出されない

@RequestMapping(value = "/search.do", method = RequestMethod.GET) 
public String searchGet(ModelMap model, 
    @RequestParam(value = "memberId", required = false) Integer memberId, 
    @RequestParam(value = "member", required = false) String member) {...} 

を、私はこのURLを使用します。

/search.do?member=T&O= 

iは、メンバー= Tとないメンバー= T & Oを取得=

リクエストパラメータがありますメンバーIDとメンバーのみに限定されています。 この問題を解決するためにspringを設定できますか?

答えて

4

&は、要求パラメータを分離するために使用されます。
URLがあなたのケース

/search.do?member=T&O= 

名前でフォーマット

http://host_port_and_url?name1=value1&name2=value2&so_on

次のリクエストのparamの名前と値が含まれている - >値
メンバー - > T
O - > (値なし - 空白)
正しいvお使いのコントローラのコードを見てみるとalues

4

は、あなたのURLは、パラメータ名が正しくマッピングされてしまいますリクエストその後

/search.do?memberId=T&member= 

されている必要があります。

あなたは、あなたの質問で述べたように同じURLを使用するように変更制御コードをご希望の場合:

public String searchGet(ModelMap model, 
@RequestParam(value = "O", required = false) Integer memberId, 
@RequestParam(value = "member", required = false) String member) {...} 
10

URLで一部の文字が特別な意味を持っています。彼らが価値の一部であると思われる場合、彼らは脱出する必要があります。

値がT &の場合は、O = T%26O%に変更する必要があります。3D

関連する問題