これは可能ですか?
_@Controller
@RequestMapping("/login")
public class LoginController {
@RequestMapping("/")
public String loginRoot() {
return "login";
}
@RequestMapping(value="/error", method=RequestMethod.GET)
public String loginError() {
return "login-error";
}
}
_
_localhost:8080/projectname/login
_ではなく_localhost:8080/projectname/login/error
_にアクセスすると、404エラーが発生しました。
これが私のweb.xmlプロジェクト名です
_<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<description></description>
<servlet-name>projectname</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>projectname</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
_
メソッドのマッピングに/
は必要ありません。 ""
にマッピングするだけです。
「/」を使用する必要はなく、リクエストメソッドも追加する必要があります。
@RequestMapping(method = RequestMethod.GET)
public String loginRoot() {
return "login";
}
これらのシナリオのテストプロセスを簡単にするために、Spring MVCテストの使用を検討してください。
https://spring.io/blog/2012/11/12/spring-framework-3-2-rc1-spring-mvc-test-framework
はい、可能です。 メソッドの_@RequestMapping
_のパスは、クラスアノテーションのパスを基準にしています。
現在の設定では、loginRoot()
は
_localhost:8080/projectname/login/
_
これを防ぐ構成が他にない場合を想定します。