2011-06-14 8 views
1

コントローラを古い継承フレームワークから新しいアノテーションに変換しようとしています。Spring MVCアノテーションには常にレスポンスオブジェクトが必要です

ここでは、既存のコントローラです:

public class SelectedTabController extends AbstractController { 

private TabSelectionHelper tabSelectionHelper; 

public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { 
    String param = request.getParameter("selectedTab"); 
    if (param != null) 
     tabSelectionHelper.setSelectedTabTo(param); 
    return null; 
} 

public void setTabSelectionHelper(TabSelectionHelper tabSelectionHelper) { 
    this.tabSelectionHelper = tabSelectionHelper; 
} 

変換後、私はこれを持っている:

@Controller 
public class SelectedTabController { 

    private TabSelectionHelper tabSelectionHelper; 

    @Autowired 
    public SelectedTabController(@Qualifier(value = "tabSelectionHelper") TabSelectionHelper tabSelectionHelper) { 
     this.tabSelectionHelper = tabSelectionHelper; 
    } 

    @RequestMapping("/selectedTab") 
    public void selectTab(String selectedTab, HttpServletResponse response) throws Exception { 
     //String param = request.getParameter("selectedTab"); 
     if (selectedTab != null) 
      tabSelectionHelper.setSelectedTabTo(selectedTab); 
    } 
} 

これは動作しますが、(冗長)のHttpServletResponseオブジェクトがselectTabのPARAMTERリストにあります。私はそれを削除すると、JQueryの呼び出しは、サーバーが500を返し、呼び出しが失敗すると言います。

助けが必要ですか?

スタックトレースを示しています

javax.servlet.ServletException: Could not resolve view with name 'selectedTab' in servlet with name 'prodman' 

だから、表示し、障害を見つけようとしています。しかし、JQueryによるバックエンド呼び出しとして表示するビューはありません。

私はレスポンスオブジェクトを宣言することによって、Springはレスポンスを記述すると思います。

Springでビューを解決できないようにするにはどうすればよいですか?

+1

HttpServletResponseは必要ありません。スタックトレースは何ですか? –

+1

スタックトレースを追加してください。あなたのフォームは何に縛られていますか? – blong824

答えて

2

戻り値の型としてvoidを使用する場合、Springは、レスポンスを直接記述していると思わない限り(デフォルトでは、HttpServletResponseをパラメータとして持つ)、メソッド名からビュー名を決定しようとします。 。 Spring 3のドキュメントの15.3.2.3節を見てください。

戻り値の型をModelAndViewに変更してnullを返し、何が起こっているのかを確認したい場合があります。@RequestMappingでヌルビューを解除することはできません。

+0

戻り値の型をStringに変更してnullを返しても、必要な効果が得られると思います。 –

関連する問題