0

以下は私のサンプルコントローラーです。

@RequestMapping(value = "/validate", method = RequestMethod.POST)
public String validatePage1 (@ModelAttribute("page1")
                        Page1 pg1, BindingResult result) {

    System.out.println("Value1:" + pg1.getVal1() + 
                "Value2:" + pg1.getVal2());

    return "page2"; // I don't want to take any action (page navigation) here
}

@RequestMapping("/page1")
public ModelAndView pageShow() {

    return new ModelAndView("page1", "command", new Page1());
}

問題は、メソッド (validatePage1) が Spring フレームワークによって呼び出されたときにクライアント側でアクションを実行したくないということです。どうすればよいですか?

実際には、ロード時にクライアント側で必要なすべてのページをロードしました (ページのロードが繰り返されるのを避けるため)。クライアント側でページ ナビゲーション アクションを実行したくありません。サーバーサイドのビジネスロジック。

"validatePage1()" で "" 空の文字列を返すと、Spring フレームワークが例外 "Request processing failed; nested exception is org.apache.tiles.definition.NoSuchDefinitionException:" をスローします。タイルを使用しているため、後でタイル構成を削除する必要があります。最初に自分自身をロードするときにすべてのファイルをロードしているためです。

4

2 に答える 2

6

here で提案されているように、返すようにメソッドを設定して、voidそれに注釈を付けることができます。などで対処する必要はありません。@ResponseBodyHttpServletResponse

于 2014-01-07T14:14:33.597 に答える
3

ドキュメントから直接:

サポートされているメソッドの戻り値の型

サポートされている戻り値の型は次のとおりです。

[...]

メソッドが応答自体を処理する場合 (応答コンテンツを直接書き込み、その目的のためにタイプ ServletResponse / HttpServletResponse の引数を宣言することによって)、またはビュー名が RequestToViewNameTranslator によって暗黙的に決定されることになっている場合 (ハンドラー メソッドのシグネチャ)。

于 2012-12-08T19:33:29.520 に答える