が、私はまだ働いている調査しました共通の問題に過ぎ...私はすべてのRESTのマッピングを持っているRESTfulなサーブレットのURL - web.xml内のservlet-mapping私はこのように感じる
私のweb.xmlに通話 -
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
URLがある場合、これはうまく機能 -
GET /rest/people
それは
012であれば はに失敗GET /rest/people/1
400 Bad Request
というエラーが発生しました。The request sent by the client was syntactically incorrect()
と表示されます。私はそれが適切に処理することができるように/rest
で始まる何をワイルドカードにはどうすればよい...
それもルーティングされるために春のサーブレットにそれを作ったかわかりませんか?言い換えれば
、私は有効であるために、次のすべてに希望 -
GET /rest/people
GET /rest/people/1
GET /rest/people/1/phones
GET /rest/people/1/phones/23
編集 - 要求されるようにコントローラー・コード
@Controller
@RequestMapping("/people")
public class PeopleController {
@RequestMapping(method=RequestMethod.GET)
public @ResponseBody String getPeople() {
return GsonFactory.getInstance().toJson(LookupDao.getInstance().getPeople());
}
@RequestMapping(value="{id}", method=RequestMethod.GET)
public @ResponseBody String getPerson(@PathVariable String id) {
return GsonFactory.getInstance().toJson(LookupDao.getInstance().getPerson(id));
}
}
回答
@matsev /
があるかどうかは問題ではありませんでした。
私はパブリックビューの変数名を転置していましたが、私はそれを動作させるためにいくつかの変更を行いました。
オリジナル
私は私がすべてへの警告として、ここではこれを残すに...変数名の不一致は私がやった@RequestMapping(value="{id}", method=RequestMethod.GET)
public @ResponseBody String getPerson(@PathVariable String id) {
return GsonFactory.getInstance().toJson(LookupDao.getInstance().getPerson(id));
}
を投稿何
@RequestMapping(value="{id}", method=RequestMethod.GET) public @ResponseBody String getPerson(@PathVariable String userId) { return GsonFactory.getInstance().toJson(LookupDao.getInstance().getPerson(userId)); }
...試合あなたの変数名!
コントローラコードを投稿できますか?私の推測では、 '/ people/{id}'ではなく '/ people'だけをマッピングしているということです。 – matsev
@matsev私はあなたのためにコードを掲載しました。それをチェックしていただきありがとうございます。 web.xmlの –
のマッピングは問題ありません。/rest/people/1のコントローラクラスメソッド()のコードをここに貼り付けることができますか?私は助けることができるかもしれません。 – shashankaholic