私の質問は要約すると、Spring MVC@ModelAttributeがすでに入力された後、どのように呼び出すようにしますか?
詳述すると、私はアシシュ・サリンによるPortlets in Actionの第8章のBookCatalogの例をいじって 
います(これは本当に良いです)。そして、注釈が付けられたメソッド 
@ModelAttributeが連続したロードでも一度だけ呼び出されるという問題に遭遇しました。例えば:
- BookCatalogポートレットが表示されます
 - [ブックの編集1]をクリックします。Book1が編集フォームに表示されます
 - ホームをクリック
 - [Book2の編集]をクリックします。Book1は引き続き編集フォームに表示されます
 
各メソッドの先頭にsysoutを追加して、何がどこで呼び出されているかを確認しました。結果は次のとおりです。
showBooks 
getBook!
initBinder
showEditBookForm
showBooks
initBinder <- Where is getBook!?
showEditBookForm
 
パラメータが要求さ@ModelAttributeれるたびにメソッドが呼び出されることをどこかで読みました。@ModelAttributeそこで@ModelAttribute("book") Book book、showEditBookFormに追加しようとしましたが、それでもメソッドがトリガーされないようです@ModelAttribute。
Spring 3.1.3.RELEASEを使用しており、Mavenを使用してLiferay6.1.1にデプロイしています。
どんな援助もいただければ幸いです!
EditBookController:
@Controller
@RequestMapping(value="VIEW")
@SessionAttributes({"book"})
public class EditBookController {
    ...
    @RenderMapping(params="myaction=editBookForm")
    public String showEditBookForm(@ModelAttribute("book") Book book) {
       System.out.println("showEditBookForm");
       return "editBookForm"
    }
    @InitBinder("book")
    public void initBinder(WebDataBinder binder) {
       System.out.println("initBinder");
       binder.registerCustomEditor(Long.class, new LongNumberPropertyEditor());
       binder.setDisallowedFields(new String[] {"isbnNumber"});
    }
    @ModelAttribute("book")
    public Book getBook(@RequestParam Long isbnNumber) {
       System.out.println("getBook!");
       return bookService.getBook(isbnNumber);
    }
    ...
}
BookController:
@Controller
@RequestMapping(value = "VIEW")
public class BookController {
    ...
    @RenderMapping
    public String showBooks(RenderResponse response,SessionStatus sessionStatus) {
       System.out.println("showBooks");
       return "home";
    }
    ...
}