回答:
注文を取得するためのURLを記述したいとします。
www.mydomain.com/order/123
ここで、123はorderIdです。
したがって、Spring MVCコントローラーで使用するURLは次のようになります
/order/{orderId}
注文IDをパス変数として宣言できるようになりました
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
URL www.mydomain.com/order/123を使用する場合、orderId変数には、スプリングにより値123が入力されます
また、pathVariableはURLの一部であるため、PathVariableはrequestParamとは異なります。リクエストパラメータを使用した同じURLは次のようになります www.mydomain.com/order?orderId=123
以下のコードスニペットをご覧ください。
@RequestMapping(value="/Add/{type}")
public ModelAndView addForm(@PathVariable String type ){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("addContent");
modelAndView.addObject("typelist",contentPropertyDAO.getType() );
modelAndView.addObject("property",contentPropertyDAO.get(type,0) );
return modelAndView;
}
コードの作成に役立つことを願っています。
パス変数を含むURLがある場合、例www.myexampl.com/item/12/updateここで、12はIDで、createは、更新を実行する単一のフォームを使用して、たとえば実行を指定するために使用する変数です。作成し、コントローラーでこれを行います。
@PostMapping(value = "/item/{id}/{method}")
public String getForm(@PathVariable("id") String itemId ,
@PathVariable("method") String methodCall , Model model){
if(methodCall.equals("create")){
//logic
}
if(methodCall.equals("update")){
//logic
}
return "path to your form";
}
@PathVariable
URLから値をフェッチするために使用されます
例:質問をするには
www.stackoverflow.com/questions/19803731
ここでいくつかの質問id
はURLのパラメータとして渡されます
この値をフェッチcontroller
するには、@ PathVariableをメソッドパラメータに渡すだけです。
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
メソッドパラメータをURIテンプレート変数にバインドする必要があることを示すアノテーション。RequestMappingアノテーション付きハンドラーメソッドでサポートされます。
@RequestMapping(value = "/download/{documentId}", method = RequestMethod.GET)
public ModelAndView download(@PathVariable int documentId) {
ModelAndView mav = new ModelAndView();
Document document = documentService.fileDownload(documentId);
mav.addObject("downloadDocument", document);
mav.setViewName("download");
return mav;
}
これは、動的URIをマップ/処理するために使用されるアノテーションの1つです。URI動的パラメーターの正規表現を指定して、特定のタイプの入力のみを受け入れることもできます。
たとえば、一意の番号を使用して本を取得するためのURLは次のようになります。
URL:http://localhost:8080/book/9783827319333
URLの最後に示される番号は、次のように@PathVariableを使用してフェッチできます。
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
つまり、SpringでHTTPリクエストからデータを抽出することでした。
以下のコードスニペットをご覧ください。
@RequestMapping(value = "edit.htm", method = RequestMethod.GET)
public ModelAndView edit(@RequestParam("id") String id) throws Exception {
ModelMap modelMap = new ModelMap();
modelMap.addAttribute("user", userinfoDao.findById(id));
return new ModelAndView("edit", modelMap);
}
プロジェクト全体がどのように機能するかを確認したい場合は、以下のリンクからダウンロードしてください:-
ModelAndView
ます。@PathVariable
コントローラー名の変数名とその値を取得するために使用される注釈。例www.abcd.com/api/value=34455&anotherValue=skjdfjhks here valueとanotherValueは変数であり、@ PathVariable( "value")int値と@PathVariable( "anotherValue")String anotherValue