2011-12-05 13 views
1

Spring Web MVCを使用して簡単な残りのAPIを構築しています。私たちのハンドラの1つは、要求パラメータとしてIDと呼ばれるintをとります。Spring-MVC Rest APIハンドラのカスタム引数変換

@RequestMapping(value="/requestEntity", 
    method=RequestMethod.GET) 
public ModelMap getEntity(
    @PathVariable(value="id")final Integer id, 
    HttpServletResponse response) throws IOException { 

は、私がリクエストオブジェクトを文字列としてリクエストパラメータの値を持っていることを知っている(NAME1 = VALUE1 & NAME2 = 22)と、そのパラメータとしてIDを持っている場合、ハンドラは魔法のintを受けること。我々は、入力として値「1 2 3」を送信した場合、我々は送信した場合

"/requestEntity", id="5" -> getEntity(5); 

は残念ながら、我々は、引数として番号123を取得する「5; 123」我々は、引数として5を取得します。

"/requestEntity", id="1 2 3" -> getEntity(123); // WRONG -- we want to throw an error 
"/requestEntity", id="5;123" -> getEntity(5); // ALSO WRONG 

私が知る限り、Springは文字列パラメータ値をハンドラが必要とするint引数に変換するための変換を行っています。独自の引数コンバータを実装するにはどうすればよいですか?

答えて

0

これは、この質問と同様の問題のようです:Spring @MVC and @RequestParam validation。あなたのために働く2つの答え/解決策があります。私はこれを最初に試してみます:

@RequestMapping 
public void handleRequest(HttpServletRequest request) { 
    int page = ServletRequestUtils.getIntParameter(request, "page", 1); 
} 
関連する問題