アプリケーションのマップルートパスを特定のコントローラーにしたい。以下は、私がこれをしなかった方法です:@RequestMappingの値を "/"に設定するとコントローラーが実行されない
マイコントローラ:
@Controller
public class Index {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String indexPage(ModelMap model, @CookieValue(value = "cityName", defaultValue = "beijing") String cityNameCookie, HttpServletRequest request) {
String cityName = CookieTools.setCityNameValue(request, cityNameCookie);
model.addAttribute("cityName", cityName);
System.out.println("index");
return "index";
}
}
私のweb.xml:私はlocalhostを入力すると
<web-app ...>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
:8080を予想通り、コントローラは実行されません。 @RequestMapping(value = "/", method = RequestMethod.GET)
を@RequestMapping(value = "/abc", method = RequestMethod.GET)
に変更し、localhost:8080/abcと入力すると、コントローラが期待どおりに実行されます。
私は問題が@requestMapping値属性の構文にあると思います。
私の質問はです。requestMappingを使用してルートパスをマップするにはどうすればよいですか?
私は相対キーワードを探知しましたが、何も見つかりませんでした。
使用しているサーバーで問題なく動作しますか? tomcatの場合、webappsフォルダ内に配置されたプロジェクト名は何ですか? – developer
'/'にマップされた別のコントローラがありますか? – utkusonmez
@ javaguy私はtomcatとintellijのアイデアを使用します。私のプロジェクト名はjiaotongですが、Tomcatのルートコンテキストで展開しました。 – inter18099