Spring MVC webapp を作成しており、コントローラーなどのコンポーネントの自動検出を使用したいと考えています。
私のアプリケーションコンテキストファイルに次のタグを入れました
<context:component-scan base-package="com.example" />
com.example.springmvc.controller にコントローラーが存在します
@Controller
public class AccountController {
@RequestMapping("/account.html")
public ModelMap showAccount() throws Exception {
ModelMap modelMap = new ModelMap();
modelMap.addAttribute("someText", "This is an account");
return modelMap;
}
@RequestMapping("/account.html")
public ModelMap showAccount(@RequestParam("accountId") int accountId) throws Exception {
ModelMap modelMap = new ModelMap();
modelMap.addAttribute("someText", String.format("This is an account with id %d", accountId));
return modelMap;
}
}
localhost:8080/account.html にアクセスしてテストすると、404 が表示されるので、何かを忘れているに違いありません。
以下のように、MVC 構成ファイルでカスタム マッピングを作成すると、機能します。少なくとも、コントローラーのあいまいなメソッドに関するエラーが発生しますが、それは別の問題です。少なくとも、コントローラーは見つかります。
<bean name="/account.html" class="com.example.springmvc.controller.AccountController"/>
XML でマッピングを作成したくありません。注釈付きの URL マッピングを使用したいと考えています。ここで私が何を忘れているのか教えていただけますか?