2011-11-14 9 views
0

私はこれを実行します。呼び出されたメソッドからモデルに追加できないのはなぜですか?

@RequestMapping(value = "/something", method = RequestMethod.POST) 
public String stuff(
    @ModelAttribute("xxx") ReviewAB7500Data xxx, 
    HttpServletRequest request, Model model) throws GeneralDAOException { 
    model.addAttribute("somekey",someValue); 
} 

すべてが正常に動作し、私は私のJSPで私のオブジェクトを見ることができます。私はこのようにそれを変更した場合でも:

private void someOtherMethod(Model model) { 
    model.addAttribute("somekey",someValue); 
    return; 
} 

@RequestMapping(value = "/something", method = RequestMethod.POST) 
public String stuff(
    @ModelAttribute("xxx") ReviewAB7500Data xxx, 
    HttpServletRequest request, Model model) throws GeneralDAOException { 
    someOtherMethod(model); 
    return viewName; 
} 

...「somekey」という名前のaddtributeは、モデル上に置かれることはありません、あるいは少なくともそれは私のJSPには表示されません。ここにヒントはありますか?

+1

私はこれが正常に動作する必要があります信じています。これは愚かな質問のように聞こえるかもしれませんが、someOtherMethodはどのように見えますか? – digitaljoel

+1

これは正しくありません。変更された何か他のものがなければなりません。あるいは、あなたが私たちにそれを示す前にその例を過度に単純化してしまっているかもしれません。 – skaffman

+0

私は上記のコメントに同意する必要があります。あなたはロジックを単純化しながら何かを見逃しましたか? – Scott

答えて

0

私はあなたがそのメソッドにパラメータを追加する必要があると考えている:

@RequestMapping(value = "/something", method = RequestMethod.POST) 
public String stuff(@ModelAttribute("xxx") ReviewAB7500Data xxx, 
        BindingResult result, 
        HttpServletRequest request, 
        Model model) throws GeneralDAOException 
+0

BindingResultは存在しますが、依然として同じ問題です。 – MTR

関連する問題