Spring-MVC/ステップ・バイ・ステップ/CRUDの追加
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[Spring-MVC/ステップ・バイ・ステップ]]
2008/04/15からのアクセス回数 &counter;
#contents
mvc-conventionの例題は、Recipeの追加削除ができません。
ここでは、RecipeのCRUD(Create, Read, Update, Delete)機能...
** コントローラの変更 [#y1bf528a]
*** EditRecipeControllerの変更 [#redd0a81]
最初に、EditRecipeControllerのformBackingObjectを変更しま...
新規のRecipeの追加の場合には、idがセットされていませんの...
ない場合の処理を追加します。
#pre{{
protected Object formBackingObject(HttpServletRequest...
try {
long id = ServletRequestUtils.getRequiredLong...
Recipe recipe = this.recipeManager.findById(n...
return recipe;
}
catch (MissingServletRequestParameterException e) {
Recipe recipe = new Recipe();
return recipe;
}
}
}}
*** SwitchBoardControllerの変更 [#t6aff2ef]
次に、SwitchBoardControllerにdeleteメソッドを追加します。
deleteメソッドでは削除した後switchboard/listRecipesに画面...
モデルにrecipeListを追加する必要があります。
deleteメソッドは、以下のようになります。
#pre{{
public ModelAndView delete(HttpServletRequest request...
long id = ServletRequestUtils.getRequiredIntParam...
Recipe recipe = recipeManager.findById(new Long(i...
((IRecipeDao)recipeManager).delete(recipe);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject(recipeManager.findAll());
modelAndView.setViewName("switchboard/listRecipes");
return modelAndView;
}
}}
ここで、recipeManagerを、移植のためStubRecipeDaoManagerに...
RecipdeManagerのままなので、以下のように
IRecipeDaoのインタフェースを使用するためにIRecipeDaoでキ...
((IRecipeDao)recipeManager).delete(recipe);
これでコントローラの処理は完了です。
** ビューの変更 [#tdd302de]
*** listRecipes.vmの変更 [#i5eaaecc]
削除リンクの追加は、編集リンクと同様に
#pre{{
#set( $deleteLink = "/switchboard/delete.htm?...
<td><a href="#springUrl(${deleteLink})">[dele...
}}
とします。
新規追加リンクは、idを指定しないでeditrecipe.htmに遷移さ...
#pre{{
<a href='#springUrl("/editrecipe.htm")'>add</a>
}}
修正されたlistRecipes.vmは以下にあります。
#ref(listRecipes.vm);
*** editRecipe.vmの変更 [#h1fd49a0]
recipe.idがセットされていないときには、HTTPのPOST処理でid...
以下のようにif文を入れます。
#pre{{
#if ( $recipe.id )
<input type="hidden" name="id" value="$!recipe.id">
#end
}}
$recipe.idがnullでないときのみidをhiddenにセットします。
修正されたeditRecipe.vmは以下にあります。
#ref(editRecipe.vm);
** 動作確認 [#d83aa63c]
mavenのjettyプラグインを起動します。
#pre{{
$ jetty:run
}}
次にブラウザーで
#pre{{
http://localhost:8080/mvc-convention/
}}
と入力すると以下の画面に代わります。
#ref(listRecipe.jpg);
addリンクをクリックするとNameのテキスト入力が空の画面にな...
#ref(editrecipe.jpg);
テストと入力して、Save Changeボタンを押すと、テストがリス...
#ref(listRecipe2.jpg);
最後に、deleteリンクを押すとテストが削除されて、最初のリ...
** コメント [#qd1a2ff6]
この記事は、
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
終了行:
[[Spring-MVC/ステップ・バイ・ステップ]]
2008/04/15からのアクセス回数 &counter;
#contents
mvc-conventionの例題は、Recipeの追加削除ができません。
ここでは、RecipeのCRUD(Create, Read, Update, Delete)機能...
** コントローラの変更 [#y1bf528a]
*** EditRecipeControllerの変更 [#redd0a81]
最初に、EditRecipeControllerのformBackingObjectを変更しま...
新規のRecipeの追加の場合には、idがセットされていませんの...
ない場合の処理を追加します。
#pre{{
protected Object formBackingObject(HttpServletRequest...
try {
long id = ServletRequestUtils.getRequiredLong...
Recipe recipe = this.recipeManager.findById(n...
return recipe;
}
catch (MissingServletRequestParameterException e) {
Recipe recipe = new Recipe();
return recipe;
}
}
}}
*** SwitchBoardControllerの変更 [#t6aff2ef]
次に、SwitchBoardControllerにdeleteメソッドを追加します。
deleteメソッドでは削除した後switchboard/listRecipesに画面...
モデルにrecipeListを追加する必要があります。
deleteメソッドは、以下のようになります。
#pre{{
public ModelAndView delete(HttpServletRequest request...
long id = ServletRequestUtils.getRequiredIntParam...
Recipe recipe = recipeManager.findById(new Long(i...
((IRecipeDao)recipeManager).delete(recipe);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject(recipeManager.findAll());
modelAndView.setViewName("switchboard/listRecipes");
return modelAndView;
}
}}
ここで、recipeManagerを、移植のためStubRecipeDaoManagerに...
RecipdeManagerのままなので、以下のように
IRecipeDaoのインタフェースを使用するためにIRecipeDaoでキ...
((IRecipeDao)recipeManager).delete(recipe);
これでコントローラの処理は完了です。
** ビューの変更 [#tdd302de]
*** listRecipes.vmの変更 [#i5eaaecc]
削除リンクの追加は、編集リンクと同様に
#pre{{
#set( $deleteLink = "/switchboard/delete.htm?...
<td><a href="#springUrl(${deleteLink})">[dele...
}}
とします。
新規追加リンクは、idを指定しないでeditrecipe.htmに遷移さ...
#pre{{
<a href='#springUrl("/editrecipe.htm")'>add</a>
}}
修正されたlistRecipes.vmは以下にあります。
#ref(listRecipes.vm);
*** editRecipe.vmの変更 [#h1fd49a0]
recipe.idがセットされていないときには、HTTPのPOST処理でid...
以下のようにif文を入れます。
#pre{{
#if ( $recipe.id )
<input type="hidden" name="id" value="$!recipe.id">
#end
}}
$recipe.idがnullでないときのみidをhiddenにセットします。
修正されたeditRecipe.vmは以下にあります。
#ref(editRecipe.vm);
** 動作確認 [#d83aa63c]
mavenのjettyプラグインを起動します。
#pre{{
$ jetty:run
}}
次にブラウザーで
#pre{{
http://localhost:8080/mvc-convention/
}}
と入力すると以下の画面に代わります。
#ref(listRecipe.jpg);
addリンクをクリックするとNameのテキスト入力が空の画面にな...
#ref(editrecipe.jpg);
テストと入力して、Save Changeボタンを押すと、テストがリス...
#ref(listRecipe2.jpg);
最後に、deleteリンクを押すとテストが削除されて、最初のリ...
** コメント [#qd1a2ff6]
この記事は、
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
ページ名:
SmartDoc