0

私は仕事で既存のダッシュボードを与えられましたが、Spring Framework を使用した Java サーブレット全体に不慣れです。

したがって、そこにあるページは機能し、フローは、コントローラー内のメソッドの @RequestMapping アノテーションがあるということです。例えば

@RequestMapping("/index.do")
public ModelAndView index() throws Exception {
    LoginDO oLoginDO = new LoginDO();       
    return new ModelAndView("index","oLoginDO",oLoginDO);
}

servlet.xml ファイルはビューを jsp ファイルにマップし、すべて機能しています。

しかし、私の問題は、controller.java ファイルを編集して、Web ページへの新しいページ用の新しいビューを返す別のメソッドを作成すると、変更がサーブレットによって認識されないことです。「サーブレットリクエストに一致するハンドラーメソッドが見つかりません」と表示されます。

これは、controller.java で編集が行われたときに、何らかの理由で Spring Framework が「更新」されていない (これが正しい用語かどうかはわかりません) ために発生していると思います。ソース コードを Eclipse の WAR ファイルから展開し、それを Tomcat サーバーで実行しました。これが取り引きです、私のメンターのコードは編集とともに正常に機能していますが、彼はTomcatプロジェクトを作成したと信じており、プロジェクトディレクトリは異なり、編集は保存直後にWebサイトに更新されます.

JSP を既存のページに変更すると、更新がすぐに認識されることに注意してください。新しい JSP と新しい @RequestMapping アノテーションを新しいメソッドとともに作成した場合にのみ、機能しません。controller.java内でprintステートメントを試してみましたが、何も表示されませんでした。

したがって、これは何よりも Eclipse の質問と展開に関する質問だと思いますが、どんな助けも素晴らしいでしょう! これを修正するために何をすべきかよくわかりません。サーバーの再起動も試みましたが、成功しませんでした。ありがとう!

4

1 に答える 1

0

新しい @RequestMapping メソッドを使用するには、コンテキストを再ロード (更新) する必要があります。STS (Eclipse) が Spring Bean の変更を検出すると、コンテキストを自動的にリロードします。これに問題がある場合は、プロジェクトを再デプロイするか、Tomcat を再起動してみてください。

また、その新しい @RequestMapping メソッドを新しいコントローラーまたは既存のコントローラーに配置しているのだろうか。新しいコントローラーの場合は、そのコントローラーを Spring Web コンテキストに追加しましたか (例: @Controller + component-scan または Bean を構成ファイルに追加するだけ)。

于 2012-06-16T05:49:49.267 に答える