Spring MVCで@PathVariable
を使用する際の簡単な説明とサンプルを教えてください。 URLの入力方法を教えてください。
jspページを表示するための正しいURLを取得するのに苦労しています。ありがとう。
ある注文を取得するためのURLを書きたいとします。
www.mydomain.com/order/123
123はorderIdです。
だから今あなたが春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とは異なります。 request paramを使った同じ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は単一のフォームを使用して更新を実行する際にintanceの実行を指定するために使用する変数です。作成、あなたはあなたのコントローラーでこれを行います。
@RequestMapping(value = "/item/{id}/{method}" , RequestMethod.GET)
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";
}
URLから値を取得するために使用される@PathVariable
例えば:質問をする
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;
}
あなたがwww.example.com/test/111としてURLを打ったとしましょう。今度はあなたはあなたのコントローラメソッドに値111(動的である)を検索しなければなりません。あなたは次のように@PathVariableを使うことになるでしょう:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
そのため、変数値はURLから取得されます。
これは動的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リクエストからデータを抽出するという方法があります。