variable restcontroller requestmethod requestmapping java spring spring-mvc request-mapping

java - restcontroller - spring rest controller parameters



Spring MVC: RequestMapping clase y método (3)

No necesita "/" y también debe agregar el método de solicitud.

@RequestMapping(method = RequestMethod.GET) public String loginRoot() { return "login"; }

Considere el uso de pruebas de mvc de primavera para facilitar el proceso de prueba de estos escenarios:

https://spring.io/blog/2012/11/12/spring-framework-3-2-rc1-spring-mvc-test-framework

es posible?

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

Recibí un error 404 al acceder a localhost:8080/projectname/login pero no en localhost:8080/projectname/login/error .

Aquí está mi nombre de proyecto 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>


No necesitas el / en el mapeo del método. Simplemente mapéelo a "" .


Sí, eso es posible. La ruta en @RequestMapping en el método es relativa a la ruta en la anotación de clase.

Con su configuración actual, loginRoot() manejará las solicitudes para

localhost:8080/projectname/login/

Suponiendo que no tenga nada más en su configuración que lo impida.