orvyl orvyl - 1 month ago 7
Java Question

Spring MVC: RequestMapping both class and method

Is this possible?

@Controller
@RequestMapping("/login")
public class LoginController {

@RequestMapping("/")
public String loginRoot() {
return "login";
}

@RequestMapping(value="/error", method=RequestMethod.GET)
public String loginError() {
return "login-error";
}

}


I got a 404 error when accessing
localhost:8080/projectname/login
but not in
localhost:8080/projectname/login/error
.

Here's my web.xml
project name

<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>

Answer

You don't need the / in the method's mapping. Just map it to "".